From 32355fadec5e0df9dc3fe3081cfdbcfbfca61fbe Mon Sep 17 00:00:00 2001 From: rylon Date: Sun, 8 Jun 2014 05:43:15 +0200 Subject: [PATCH] sys cron mod proto --- sai/modules/autoload_modules.php | 3 +- sai/modules/register_modules.php | 1 + sai/modules/saimod_sys_cron/delete_dialog.tpl | 26 +++++ sai/modules/saimod_sys_cron/list_entry.tpl | 10 ++ .../saimod_sys_cron/saimod_sys_cron.css | 64 +++++++++++ .../saimod_sys_cron/saimod_sys_cron.js | 98 +++++++++++++++++ .../saimod_sys_cron/saimod_sys_cron.php | 102 ++++++++++++++++++ sai/modules/saimod_sys_cron/tab.tpl | 15 +++ sai/modules/saimod_sys_cron/tabopt.tpl | 1 + sai/modules/saimod_sys_cron/tabs.tpl | 38 +++++++ 10 files changed, 357 insertions(+), 1 deletion(-) create mode 100644 sai/modules/saimod_sys_cron/delete_dialog.tpl create mode 100644 sai/modules/saimod_sys_cron/list_entry.tpl create mode 100644 sai/modules/saimod_sys_cron/saimod_sys_cron.css create mode 100644 sai/modules/saimod_sys_cron/saimod_sys_cron.js create mode 100644 sai/modules/saimod_sys_cron/saimod_sys_cron.php create mode 100644 sai/modules/saimod_sys_cron/tab.tpl create mode 100644 sai/modules/saimod_sys_cron/tabopt.tpl create mode 100644 sai/modules/saimod_sys_cron/tabs.tpl diff --git a/sai/modules/autoload_modules.php b/sai/modules/autoload_modules.php index b06e339..428b21c 100644 --- a/sai/modules/autoload_modules.php +++ b/sai/modules/autoload_modules.php @@ -11,4 +11,5 @@ SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_locale','SYSTEM\S SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_cache','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_docu','SYSTEM\SAI'); SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_todo','SYSTEM\SAI'); -SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_files','SYSTEM\SAI'); \ No newline at end of file +SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_files','SYSTEM\SAI'); +SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_cron','SYSTEM\SAI'); \ No newline at end of file diff --git a/sai/modules/register_modules.php b/sai/modules/register_modules.php index 5c4c50b..619764e 100644 --- a/sai/modules/register_modules.php +++ b/sai/modules/register_modules.php @@ -7,6 +7,7 @@ \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_locale'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_files'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_cache'); +\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_cron'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_todo'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_docu'); \SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_login'); \ No newline at end of file diff --git a/sai/modules/saimod_sys_cron/delete_dialog.tpl b/sai/modules/saimod_sys_cron/delete_dialog.tpl new file mode 100644 index 0000000..54505c1 --- /dev/null +++ b/sai/modules/saimod_sys_cron/delete_dialog.tpl @@ -0,0 +1,26 @@ +
+
Api Call: ${ID}
+
+ + + + + + + + + + + + + + + + + + + +
IDGroupTypeParentIDParentValueNameVerify
${ID}${group}${type}${parentID}${parentValue}${name}${verify}
+
+ + diff --git a/sai/modules/saimod_sys_cron/list_entry.tpl b/sai/modules/saimod_sys_cron/list_entry.tpl new file mode 100644 index 0000000..894c367 --- /dev/null +++ b/sai/modules/saimod_sys_cron/list_entry.tpl @@ -0,0 +1,10 @@ + + ${class} + ${min} + ${hour} + ${day} + ${day_week} + ${month} + ${last_run} + ${status} + \ No newline at end of file diff --git a/sai/modules/saimod_sys_cron/saimod_sys_cron.css b/sai/modules/saimod_sys_cron/saimod_sys_cron.css new file mode 100644 index 0000000..07df088 --- /dev/null +++ b/sai/modules/saimod_sys_cron/saimod_sys_cron.css @@ -0,0 +1,64 @@ +p { + font-size: 90%; +} +.tree { + min-height:20px; + padding:19px; + margin-bottom:20px; + background-color:#fbfbfb; + border:1px solid #999; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05) +} +.tree li { + list-style-type:none; + margin:0; + padding:10px 5px 0 5px; + position:relative +} +.tree li::before, .tree li::after { + content:''; + left:-20px; + position:absolute; + right:auto +} +.tree li::before { + border-left:1px solid #999; + bottom:50px; + height:100%; + top:0; + width:1px +} +.tree li::after { + border-top:1px solid #999; + height:20px; + top:25px; + width:25px +} +.tree li span { + -moz-border-radius:5px; + -webkit-border-radius:5px; + border:1px solid #999; + border-radius:5px; + display:inline-block; + padding:3px 8px; + text-decoration:none +} +.tree li.parent_li>span { + cursor:pointer +} +.tree>ul>li::before, .tree>ul>li::after { + border:0 +} +.tree li:last-child::before { + height:30px +} +.tree li.parent_li>span:hover, .tree li.parent_li>span:hover+ul li span { + background:#eee; + border:1px solid #94a0b4; + color:#000 +} \ No newline at end of file diff --git a/sai/modules/saimod_sys_cron/saimod_sys_cron.js b/sai/modules/saimod_sys_cron/saimod_sys_cron.js new file mode 100644 index 0000000..c80b5a1 --- /dev/null +++ b/sai/modules/saimod_sys_cron/saimod_sys_cron.js @@ -0,0 +1,98 @@ +var currentID = ''; + +function init__SYSTEM_SAI_saimod_sys_api() { + saimod_sys_api_tree(); + saimod_sys_api_register_clickevents(); + +} + +function saimod_sys_api_loadcontent(){ + $('#api_wrapper').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_api', function(){ + console.log('api module loaded'); + saimod_sys_api_register_clickevents(); + }); + +} + +function saimod_sys_api_register_clickevents(){ + $('tr.api_entries').click(function() { + console.log("ahsf"); + currentID = $(this).attr("id"); + $.ajax({ + url: SAI_ENDPOINT, + data: { sai_mod: '.SYSTEM.SAI.saimod_sys_api', + action: 'deletedialog', + ID: currentID}, + type: 'GET', + success: function(data) { + console.log("works"); + $('#api_content').html(data); + $('#del_api_close').click(function() { + console.log("olenski"); + $('#del_api_description').hide(); + $('#del_api_del').show(); + saimod_sys_api_loadcontent(); + }); + $('#del_api_del').click(function() { + $.ajax({ + url: SAI_ENDPOINT, + data: { sai_mod: '.SYSTEM.SAI.saimod_sys_api', + action: 'deletecall', + ID: currentID}, + type: 'GET', + success: function(data) { + console.log("api call deleted"); + $('#api_deletedialog').html('

Api call deleted!

'); + $('#del_api_del').hide(); + }});});}});}); + + $('#addcall').click(function() { + var id = $('#new_call_id').val(); + var group = $('#new_call_group').val(); + var type = $('#new_call_type').val(); + var parentid = $('#new_call_parentid').val(); + var parentvalue = $('#new_call_parentvalue').val(); + var name = $('#new_call_name').val(); + var verify = $('#new_call_verify').val(); + $.ajax({ + url: SAI_ENDPOINT, + data: { sai_mod: '.SYSTEM.SAI.saimod_sys_api', + action: 'addcall', + ID: id, + group: group, + type: type, + parentID: parentid, + parentValue : parentvalue, + name: name, + verify: verify}, + type: 'GET', + success: function(data) { + console.log("new api call added"); + saimod_sys_api_loadcontent(); + } + }); + + }); + $('#del_api_close').click(function() { + console.log("olenski"); + $('#del_api_description').hide(); + $('#del_api_del').show(); + saimod_sys_api_loadcontent(); + }); + $('#localetab a').click(function (e) {e.preventDefault(); $(this).tab('show');}); +} + +function saimod_sys_api_tree(){ + $('.tree li:has(ul)').addClass('parent_li').find(' > span').attr('title', 'Collapse this branch'); + $('.tree li.parent_li > span').on('click', function (e) { + var children = $(this).parent('li.parent_li').find(' > ul > li'); + if (children.is(":visible")) { + children.hide('fast'); + $(this).attr('title', 'Expand this branch').find(' > i').addClass('icon-plus-sign').removeClass('icon-minus-sign'); + } else { + children.show('fast'); + $(this).attr('title', 'Collapse this branch').find(' > i').addClass('icon-minus-sign').removeClass('icon-plus-sign'); + } + e.stopPropagation(); + }); +} \ No newline at end of file diff --git a/sai/modules/saimod_sys_cron/saimod_sys_cron.php b/sai/modules/saimod_sys_cron/saimod_sys_cron.php new file mode 100644 index 0000000..54a2a37 --- /dev/null +++ b/sai/modules/saimod_sys_cron/saimod_sys_cron.php @@ -0,0 +1,102 @@ +query('SELECT "group", count(*) as "count" FROM system.api GROUP BY "group" ORDER BY "group" ASC;'); + } else { + $res = $con->query('SELECT `group`, count(*) as `count` FROM system_api GROUP BY `group` ORDER BY `group` ASC;'); + } + + $vars['tabopts'] = ''; + $first = true; + while($r = $res->next()){ + $vars2 = array( 'active' => ($first ? 'active' : ''), + 'tab_id' => $r['group']); + $first = false; + $vars['tabopts'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_cron/tabopt.tpl'), $vars2); + } + + if(\SYSTEM\system::isSystemDbInfoPG()){ + $res = $con->query('SELECT * FROM system.api ORDER BY "group", "ID" ASC;'); + } else { + $res = $con->query('SELECT * FROM system_api ORDER BY `group`, `ID` ASC;'); + } + + while($r = $res->next()){ + $tabs[$r['group']]['tab_id'] = $r['group']; + $tabs[$r['group']]['content'] = isset($tabs[$r['group']]['content']) ? $tabs[$r['group']]['content'] : ''; + $r['tr_class'] = self::tablerow_class($r['type']); + $r['type'] = self::type_names($r['type']); + $tabs[$r['group']]['content'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_cron/list_entry.tpl'), $r); + } + + $vars['tabs'] = ''; + $first = true; + foreach($tabs as $tab){ + $tab['active'] = ($first ? 'active' : ''); + $first = false; + $vars['tabs'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_cron/tab.tpl'), $tab);} + + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_cron/tabs.tpl'), $vars); + +/* $result = ""; + $result .= ''.''.$r['ID'].''.''.$r['group'].''.''.$r['type'].''.''.$r['parentID'].''.''.$r['parentValue'].''.''.$r['name'].''.''.$r['verify'].''.''; + return $result;*/ + } + + public static function sai_mod__system_sai_saimod_sys_api_action_deletedialog($ID){ + $res = \SYSTEM\DBD\SYS_SAIMOD_API_SINGLE_SELECT::Q1(array($ID)); + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_cron/delete_dialog.tpl'), $res); + } + + public static function sai_mod__system_sai_saimod_sys_api_action_addcall($ID,$group,$type,$parentID,$parentValue,$name,$verify){ + if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API)){ + throw new \SYSTEM\LOG\ERROR("You dont have edit Rights - Cant proceeed");} + \SYSTEM\DBD\SYS_SAIMOD_API_ADD::QI(array($ID,$group,$type,$parentID,$parentValue,$name,$verify)); + return \SYSTEM\LOG\JsonResult::ok(); + } + + public static function sai_mod__system_sai_saimod_sys_api_action_deletecall($ID){ + if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI_API)){ + throw new \SYSTEM\LOG\ERROR("You dont have edit Rights - Cant proceeed");} + \SYSTEM\DBD\SYS_SAIMOD_API_DEL::QI(array($ID)); + return \SYSTEM\LOG\JsonResult::ok(); + } + + private static function type_names($type){ + switch($type){ + case 0: return 'COMMAND'; + case 1: return 'COMMAND_FLAG'; + case 2: return 'PARAMETER'; + case 3: return 'PARAMETER_OPT'; + case 4: return 'STATIC'; + default: return 'Problem unknown type'; + } + } + + private static function tablerow_class($flag){ + switch($flag){ + case 0: return 'info'; + case 1: return ''; + case 4: return 'warning'; + default: return 'success'; + } + } + + public static function html_li_menu(){return '
  • Cron
  • ';} + public static function right_public(){return false;} + public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + + public static function sai_mod__SYSTEM_SAI_saimod_sys_cron_flag_css(){ + return \SYSTEM\LOG\JsonResult::toString( + array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_cron/saimod_sys_cron.css')));} + public static function sai_mod__SYSTEM_SAI_saimod_sys_cron_flag_js(){ + return \SYSTEM\LOG\JsonResult::toString( + array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_cron/saimod_sys_cron.js')));} +} \ No newline at end of file diff --git a/sai/modules/saimod_sys_cron/tab.tpl b/sai/modules/saimod_sys_cron/tab.tpl new file mode 100644 index 0000000..bbfaecf --- /dev/null +++ b/sai/modules/saimod_sys_cron/tab.tpl @@ -0,0 +1,15 @@ +
    + + + + + + + + + + + + ${content} +
    classminhourdayday_weekmonthlast_runstatus
    +
    \ No newline at end of file diff --git a/sai/modules/saimod_sys_cron/tabopt.tpl b/sai/modules/saimod_sys_cron/tabopt.tpl new file mode 100644 index 0000000..cf223b0 --- /dev/null +++ b/sai/modules/saimod_sys_cron/tabopt.tpl @@ -0,0 +1 @@ +
  • Group ${tab_id}
  • \ No newline at end of file diff --git a/sai/modules/saimod_sys_cron/tabs.tpl b/sai/modules/saimod_sys_cron/tabs.tpl new file mode 100644 index 0000000..c1596be --- /dev/null +++ b/sai/modules/saimod_sys_cron/tabs.tpl @@ -0,0 +1,38 @@ +
    +

    System Cron

    +
    +
    +
    + +
    + ${tabs} +
    +
    + + + + + + + + + + + + + + + + + + + + + + +
    classminhourdayday_weekmonthlast_runstatus
    + +
    +