diff --git a/sai/modules/autoload_modules.php b/sai/modules/autoload_modules.php
index 6e52fa7..86405e4 100644
--- a/sai/modules/autoload_modules.php
+++ b/sai/modules/autoload_modules.php
@@ -6,7 +6,7 @@ SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_log','SYSTEM\SAI'
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_security','SYSTEM\SAI');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_mod','SYSTEM\SAI');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_config','SYSTEM\SAI');
-SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_calls','SYSTEM\SAI');
+SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_api','SYSTEM\SAI');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_locale','SYSTEM\SAI');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_cache','SYSTEM\SAI');
SYSTEM\autoload::registerFolder(dirname(__FILE__).'/saimod_sys_docu','SYSTEM\SAI');
diff --git a/sai/modules/register_modules.php b/sai/modules/register_modules.php
index 72ec9be..946b20d 100644
--- a/sai/modules/register_modules.php
+++ b/sai/modules/register_modules.php
@@ -6,7 +6,7 @@
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_security');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_mod');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_config');
-\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_calls');
+\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_api');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_locale');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_cache');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_todo');
diff --git a/sai/modules/saimod_sys_api/list_entry.tpl b/sai/modules/saimod_sys_api/list_entry.tpl
new file mode 100644
index 0000000..895e5ce
--- /dev/null
+++ b/sai/modules/saimod_sys_api/list_entry.tpl
@@ -0,0 +1,9 @@
+
+ | ${ID} |
+ ${group} |
+ ${type} |
+ ${parentID} |
+ ${parentValue} |
+ ${name} |
+ ${verify} |
+
\ No newline at end of file
diff --git a/sai/modules/saimod_sys_api/saimod_sys_api.js b/sai/modules/saimod_sys_api/saimod_sys_api.js
new file mode 100644
index 0000000..7231266
--- /dev/null
+++ b/sai/modules/saimod_sys_api/saimod_sys_api.js
@@ -0,0 +1,3 @@
+function init__SYSTEM_SAI_saimod_sys_api() {
+ $('#localetab a').click(function (e) {e.preventDefault(); $(this).tab('show');});
+}
\ No newline at end of file
diff --git a/sai/modules/saimod_sys_api/saimod_sys_api.php b/sai/modules/saimod_sys_api/saimod_sys_api.php
new file mode 100644
index 0000000..d908338
--- /dev/null
+++ b/sai/modules/saimod_sys_api/saimod_sys_api.php
@@ -0,0 +1,68 @@
+query('SELECT * FROM system.api ORDER BY "group", "ID" 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_api/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']);
+ $tabs[$r['group']]['content'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_api/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_api/tab.tpl'), $tab);}
+
+ return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_api/tabs.tpl'), $vars);
+
+/* $result = "";
+ $result .= ''.'| '.$r['ID'].' | '.''.$r['group'].' | '.''.$r['type'].' | '.''.$r['parentID'].' | '.''.$r['parentValue'].' | '.''.$r['name'].' | '.''.$r['verify'].' | '.'
';
+ return $result;*/
+ }
+
+ private static function tablerow_class($flag){
+ switch($flag){
+ case 0: return 'info';
+ case 1: return '';
+ default: return 'success';
+ }
+ }
+
+ public static function html_li_menu(){return 'API';}
+ 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_api_flag_css(){}
+ public static function sai_mod__SYSTEM_SAI_saimod_sys_api_flag_js(){
+ return \SYSTEM\LOG\JsonResult::toString(
+ array( \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_api/saimod_sys_api.js')));}
+}
\ No newline at end of file
diff --git a/sai/modules/saimod_sys_api/tab.tpl b/sai/modules/saimod_sys_api/tab.tpl
new file mode 100644
index 0000000..ef30aa9
--- /dev/null
+++ b/sai/modules/saimod_sys_api/tab.tpl
@@ -0,0 +1,15 @@
+
+
Api Table for Group ${tab_id}
+
+
+ | ID |
+ Group |
+ Type |
+ ParentID |
+ ParentValue |
+ Name |
+ Verify |
+
+ ${content}
+
+
\ No newline at end of file
diff --git a/sai/modules/saimod_sys_api/tabopt.tpl b/sai/modules/saimod_sys_api/tabopt.tpl
new file mode 100644
index 0000000..cf223b0
--- /dev/null
+++ b/sai/modules/saimod_sys_api/tabopt.tpl
@@ -0,0 +1 @@
+Group ${tab_id}
\ No newline at end of file
diff --git a/sai/modules/saimod_sys_api/tabs.tpl b/sai/modules/saimod_sys_api/tabs.tpl
new file mode 100644
index 0000000..31b364c
--- /dev/null
+++ b/sai/modules/saimod_sys_api/tabs.tpl
@@ -0,0 +1,10 @@
+Api Tables
+
+
\ No newline at end of file
diff --git a/sai/modules/saimod_sys_calls/saimod_sys_calls.php b/sai/modules/saimod_sys_calls/saimod_sys_calls.php
deleted file mode 100644
index 2171ba1..0000000
--- a/sai/modules/saimod_sys_calls/saimod_sys_calls.php
+++ /dev/null
@@ -1,45 +0,0 @@
-query('SELECT * FROM system.api ORDER BY "group", "ID" ASC;');
- } else {
- $res = $con->query('SELECT * FROM system_api ORDER BY `group`, `ID` ASC;');
- }
-
- $result = "";
- while($r = $res->next()){
- if($last_group != $r['group']){
- $last_group = $r['group'];
- if($last_group != -1){
- $result .= '';}
- $result .= 'Api Table for Group '.$r["group"].'
'.
- ''.
- ''.'| '.'ID'.' | '.''.'Group'.' | '.''.'Type'.' | '.''.'ParentID'.' | '.''.'ParentValue'.' | '.''.'Name'.' | '.''.'Verify'.' | '.'
';
- }
- $result .= ''.'| '.$r['ID'].' | '.''.$r['group'].' | '.''.$r['type'].' | '.''.$r['parentID'].' | '.''.$r['parentValue'].' | '.''.$r['name'].' | '.''.$r['verify'].' | '.'
';
- }
- $result .= '
';
- return $result;
- }
-
- private static function tablerow_class($flag){
- switch($flag){
- case 0: return 'info';
- case 1: return '';
- default: return 'success';
- }
- }
-
- public static function html_li_menu(){return 'API Calls';}
- 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_calls_flag_css(){}
- public static function sai_mod__SYSTEM_SAI_saimod_sys_calls_flag_js(){}
-}
\ No newline at end of file