diff --git a/sai/modules/register_modules.php b/sai/modules/register_modules.php index 7269a88..8a8f0b0 100644 --- a/sai/modules/register_modules.php +++ b/sai/modules/register_modules.php @@ -1,8 +1,8 @@ register('\SYSTEM\SAI\saimod_sys_sai'); -\SYSTEM\SAI\sai::getInstance()->register('\SYSTEM\SAI\saimod_sys_login'); -\SYSTEM\SAI\sai::getInstance()->register('\SYSTEM\SAI\saimod_sys_error'); +\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_sai'); +\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_login'); +\SYSTEM\SAI\sai::getInstance()->register_sys('\SYSTEM\SAI\saimod_sys_error'); //\SYSTEM\SAI\sai::getInstance()->register('\SYSTEM\SAI\saimod_sys_sys'); //\SYSTEM\SAI\sai::getInstance()->register('\SYSTEM\SAI\saimod_sys_api'); //\SYSTEM\SAI\sai::getInstance()->register('\SYSTEM\SAI\saimod_sys_page'); diff --git a/sai/modules/saimod_sys_error/saimod_sys_error.php b/sai/modules/saimod_sys_error/saimod_sys_error.php index c4ebfa3..b4b45ae 100644 --- a/sai/modules/saimod_sys_error/saimod_sys_error.php +++ b/sai/modules/saimod_sys_error/saimod_sys_error.php @@ -10,7 +10,7 @@ class saimod_sys_error extends \SYSTEM\SAI\SaiModule { $now = microtime(true); - $result = ''. + $result = '
'. ''.''.''.''.''.''.''.''.''.''; while($r = $res->next()){ $result .= ''.''.''.''.''.''.''.''.''.''; @@ -38,4 +38,7 @@ class saimod_sys_error extends \SYSTEM\SAI\SaiModule { public static function html_li_menu(){return '
  • SYS Error
  • ';} public static function right_public(){return false;} public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo(), \SYSTEM\SECURITY\RIGHTS::SYS_SAI);} + + public static function src_css(){} + public static function src_js(){} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/login.js b/sai/modules/saimod_sys_login/login.js new file mode 100644 index 0000000..83268d0 --- /dev/null +++ b/sai/modules/saimod_sys_login/login.js @@ -0,0 +1,21 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + + + +/* jQuery on document ready */ +$(document).ready(function() { + + $("#submitButton").click(function(){ + $.get('./api.php?call=account&action=login&username='+$('#username').val()+'&password_sha='+$.sha1($('#password').val())+'&password_md5='+hex_md5($('#password').val()), function (data) { + if(data === 1){ + $("#loginStatusMsg").html('Login successful!!'); + } else { + $("#loginStatusMsg").html('Wrong username or password!'); + } + }); + }); + +}); diff --git a/sai/modules/saimod_sys_login/login.tpl b/sai/modules/saimod_sys_login/login.tpl index 806f1a2..a16a0c5 100644 --- a/sai/modules/saimod_sys_login/login.tpl +++ b/sai/modules/saimod_sys_login/login.tpl @@ -1,18 +1,32 @@ Please login for developer access.
    -${message} - -
    - Login - - - - - - - - - -
    + +
    +
    + +
    +
    + +
    +
    + + +
    \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/login.tpl.tpl b/sai/modules/saimod_sys_login/login.tpl.tpl new file mode 100644 index 0000000..a16a0c5 --- /dev/null +++ b/sai/modules/saimod_sys_login/login.tpl.tpl @@ -0,0 +1,32 @@ +Please login for developer access. +
    + + +
    +
    + +
    +
    + +
    +
    + + +
    + \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/login_success.tpl b/sai/modules/saimod_sys_login/login_success.tpl deleted file mode 100644 index 7268a0a..0000000 --- a/sai/modules/saimod_sys_login/login_success.tpl +++ /dev/null @@ -1 +0,0 @@ -Login successful. \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/logout.tpl b/sai/modules/saimod_sys_login/logout.tpl new file mode 100644 index 0000000..eb0849a --- /dev/null +++ b/sai/modules/saimod_sys_login/logout.tpl @@ -0,0 +1,12 @@ +You are logged in +
    + + +
    +
    + + +
    + \ No newline at end of file diff --git a/sai/modules/saimod_sys_login/sai_sys_login_submit.js b/sai/modules/saimod_sys_login/sai_sys_login_submit.js new file mode 100644 index 0000000..18f542c --- /dev/null +++ b/sai/modules/saimod_sys_login/sai_sys_login_submit.js @@ -0,0 +1,34 @@ +$(document).ready(function() { + //jqBootstrapValidation + $("#login_form input").not("[type=submit]").jqBootstrapValidation({ + preventSubmit: true, + submitError: function($form, event, errors) {}, + submitSuccess: function($form, event){ + $.get('./api.php?call=account&action=login&username='+$('#bt_login_user').val()+'&password_sha='+$.sha1($('#bt_login_password').val())+'&password_md5='+hex_md5($('#bt_login_password').val()), function (data) { + if(data == 1){ + $('.help-block').html("Login successfull.
    "); + location.reload(true); + } else { + $('.help-block').html("Login not successfull.
    User & Password combination wrong.") + } + }); + event.preventDefault(); + } + }); + + $("#logout_form input").not("[type=submit]").jqBootstrapValidation({ + preventSubmit: true, + submitError: function($form, event, errors) {}, + submitSuccess: function($form, event){ + $.get('./api.php?call=account&action=logout', function (data) { + if(data == 1){ + $('.help-block').html("Logout successfull.
    "); + location.reload(true); + } else { + $('.help-block').html("Logout not successfull.
    ") + } + }); + event.preventDefault(); + } + }); +}); diff --git a/sai/modules/saimod_sys_login/saimod_sys_login.php b/sai/modules/saimod_sys_login/saimod_sys_login.php index 8b8dba4..6828787 100644 --- a/sai/modules/saimod_sys_login/saimod_sys_login.php +++ b/sai/modules/saimod_sys_login/saimod_sys_login.php @@ -8,12 +8,29 @@ class saimod_sys_login extends \SYSTEM\SAI\SaiModule { if( isset($_POST['username']) && isset($_POST['password']) && \SYSTEM\SECURITY\Security::login(\SYSTEM\system::getSystemDBInfo(), $_POST['username'], sha1($_POST['password']), md5($_POST['password']))){ return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/login_success.tpl'), array());} - + $vars = array(); - $vars['message'] = \SYSTEM\SECURITY\Security::isLoggedIn() ? 'You are already logged in! Maybe you dont have the required rights ;-).' : 'Not logged in!'; - return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/login.tpl'), $vars); + $vars['login'] = 'Login'; + $vars['logout'] = 'Logout'; + $vars['loginUsername'] = 'Username'; + $vars['loginPassword'] = 'Password'; + $vars['login_username_too_short'] = 'Username to short.'; + $vars['login_password_too_short'] = 'Password to short.'; + + if(\SYSTEM\SECURITY\Security::isLoggedIn()){ + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/logout.tpl'), $vars); + } else { + return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/login.tpl'), $vars);} } public static function html_li_menu(){return '
  • SYS Login
  • ';} public static function right_public(){return true;} public static function right_right(){} + + public static function src_css(){} + public static function src_js(){return \SYSTEM\LOG\JsonResult::toString( + array( \SYSTEM\WEBPATH(new \PPAGE(),'default_page/js/jqBootstrapValidation.js'), + \SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_login/sai_sys_login_submit.js'), + \SYSTEM\WEBPATH(new \PPAGE(),'default_page/js/crypto/md5.js'), + \SYSTEM\WEBPATH(new \PPAGE(),'default_page/js/crypto/jquery.sha1.js') + ));} } \ No newline at end of file diff --git a/sai/modules/saimod_sys_sai/saimod_sys_sai.php b/sai/modules/saimod_sys_sai/saimod_sys_sai.php index d78426b..c8af523 100644 --- a/sai/modules/saimod_sys_sai/saimod_sys_sai.php +++ b/sai/modules/saimod_sys_sai/saimod_sys_sai.php @@ -7,4 +7,7 @@ class saimod_sys_sai extends \SYSTEM\SAI\SaiModule { public static function html_li_menu(){return '
  • SYS SAI
  • ';} public static function right_public(){return true;} public static function right_right(){} + + public static function src_css(){} + public static function src_js(){} } \ No newline at end of file diff --git a/sai/page/default_module/default_module.php b/sai/page/default_module/default_module.php index cf1eeef..b20b25d 100644 --- a/sai/page/default_module/default_module.php +++ b/sai/page/default_module/default_module.php @@ -6,18 +6,27 @@ class default_module extends \SYSTEM\PAGE\Page { private $module = null; private $post_get = null; + private $css = null; + private $js = null; public function __construct($module,$post_get){ $this->module = $module; - $this->post_get = $post_get;} + $this->post_get = $post_get; + $this->css = isset($post_get['css']) ? $post_get['css'] : null; + $this->js = isset($post_get['js']) ? $post_get['js'] : null; + } public function html(){ if($this->module != null){ - $mods = \SYSTEM\SAI\sai::getInstance()->getModules(); + $mods = \SYSTEM\SAI\sai::getInstance()->getAllModules(); if( $this->module && \array_search($this->module, $mods) !== false && ( \call_user_func(array($this->module, 'right_public')) || \call_user_func(array($this->module, 'right_right')))){ + if($this->css != null){ + return \call_user_func(array($this->module, 'src_css'));} + if($this->js != null){ + return \call_user_func(array($this->module, 'src_js'));} return \call_user_func(array($this->module, 'html_content'),array($this->post_get));} } diff --git a/sai/page/default_page/default_page.php b/sai/page/default_page/default_page.php index bd4fc76..7a25cca 100644 --- a/sai/page/default_page/default_page.php +++ b/sai/page/default_page/default_page.php @@ -4,7 +4,19 @@ namespace SYSTEM\SAI; class default_page extends \SYSTEM\PAGE\Page { - private function menu(){ + private function menu_sys(){ + $result = ''; + + $mods = \SYSTEM\SAI\sai::getInstance()->getSysModules(); + foreach($mods as $mod){ + if(\call_user_func(array($mod, 'right_public')) || + \call_user_func(array($mod, 'right_right'))){ + $result .= \call_user_func(array($mod, 'html_li_menu'));} + } + return $result; + } + + private function menu_proj(){ $result = ''; $mods = \SYSTEM\SAI\sai::getInstance()->getModules(); @@ -13,7 +25,7 @@ class default_page extends \SYSTEM\PAGE\Page { \call_user_func(array($mod, 'right_right'))){ $result .= \call_user_func(array($mod, 'html_li_menu'));} } - return $result.''; + return $result; } private function css(){ @@ -23,11 +35,9 @@ class default_page extends \SYSTEM\PAGE\Page { } private function js(){ - //if(!\SYSTEM\SECURITY\Security::check(\SYSTEM\system::getSystemDBInfo() , \SYSTEM\SECURITY\RIGHTS::SYS_SAI)){ - // $login = new \SYSTEM\SAI\login_page(); - // return $login->html();} $result = ''. ''. + ''. ''; return $result; } @@ -38,14 +48,10 @@ class default_page extends \SYSTEM\PAGE\Page { $vars['css'] = $this->css(); $vars['js'] = $this->js(); - $vars['menu'] = $this->menu(); + $vars['menu_sys'] = $this->menu_sys(); + $vars['menu_proj'] = $this->menu_proj(); $vars['navimg'] = \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_NAVIMG); - - //$vars['PATH_IMG'] = SYSTEM\WEBPATH(new PPAGE(),'default_developer/img/'); - //$vars['PATH_LIB'] = SYSTEM\WEBPATH(new PLIB()); - //$vars['PATH_JS'] = SYSTEM\WEBPATH(new PJS()); - //$vars = array_merge($vars, SYSTEM\locale::getStrings(\SYSTEM\DBD\locale_string::VALUE_CATEGORY_DASENSE)); return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'page/default_page/sai.tpl'), $vars); } } \ No newline at end of file diff --git a/sai/page/default_page/js/index.js b/sai/page/default_page/js/index.js index ba1b17f..7c90838 100644 --- a/sai/page/default_page/js/index.js +++ b/sai/page/default_page/js/index.js @@ -3,34 +3,41 @@ $(document).ready(function() { // initialize content - $('div#content-wrapper').load('./?action=developer&sai_mod=.SYSTEM.SAI.saimod_sys_sai', function() { - $('.carousel').carousel(); - }); + loadModuleContent('.SYSTEM.SAI.saimod_sys_sai'); - /** - * generic navigation control - */ - $('div#developer-navbar ul#developer-nav li a').click(function () { - var id = $(this).attr("id"); + //load content -> menu + $('#sai_navbar ul li a, #project_navbar ul li a').click(function () { + var id = $(this).attr("id"); if(id !== undefined){ - console.log("Module: "+id); + console.log("Module: "+id); - $('div#developer-navbar ul#developer-nav li').each(function(){ - $(this).removeClass('active'); - }); + $('#sai_navbar li, #project_navbar li').each(function(){ + $(this).removeClass('active');}); $(this).parent().addClass('active'); + loadModuleContent(id); } }); $('.brand').click(function(){ location.reload(); - }); - + }); }); function loadModuleContent(id){ - $('div#content-wrapper').load('./?action=developer&sai_mod='+id, function(){ - init(); + $('div#content-wrapper').load('./?action=developer&sai_mod='+id, function(){}); + + $.getJSON('./?action=developer&sai_mod='+id+'&css=1', function (data) { + if(data){ + for(var i=0; i < data['result'].length; i++){ + loadCSS(data['result'][i]);} + } }); + + $.getJSON('./?action=developer&sai_mod='+id+'&js=1', function (data) { + if(data){ + for(var i=0; i < data['result'].length; i++){ + loadJS(unescape(data['result'][i]));} + } + }); } \ No newline at end of file diff --git a/sai/page/default_page/js/loadcssjs.js b/sai/page/default_page/js/loadcssjs.js new file mode 100644 index 0000000..95a87ac --- /dev/null +++ b/sai/page/default_page/js/loadcssjs.js @@ -0,0 +1,18 @@ +function loadJS(jssrc) { + if(jssrc){ + var snode = document.createElement('script'); + snode.setAttribute('type','text/javascript'); + snode.setAttribute('src',jssrc); + document.getElementsByTagName('head')[0].appendChild(snode); + } +} + +function loadCSS(csssrc) { + if(csssrc){ + var snode = document.createElement('link'); + snode.setAttribute('type','text/css'); + snode.setAttribute('rel', 'stylesheet'); + snode.setAttribute('href',csssrc); + document.getElementsByTagName('head')[0].appendChild(snode); + } +} \ No newline at end of file diff --git a/sai/page/default_page/sai.tpl b/sai/page/default_page/sai.tpl index 66117c9..23edeef 100644 --- a/sai/page/default_page/sai.tpl +++ b/sai/page/default_page/sai.tpl @@ -10,18 +10,26 @@ -
    '.'time ago in sec'.''.'time'.''.'class'.''.'message'.''.'code'.''.'file'.''.'line'.''.'ip'.''.'querytime'.'
    '.(int)($now - strtotime($r['time'])).''.$r['time'].''.$r['class'].''.$r['message'].''.$r['code'].''.$r['file'].''.$r['line'].''.$r['ip'].''.$r['querytime'].'