update to bootstrap v4.0.0 - complete overhoul started

This commit is contained in:
Ulf Gebhardt 2018-01-21 02:19:24 +01:00
parent 2779cc35e0
commit 8af881b88f
94 changed files with 496 additions and 512 deletions

2
cache/cache_js.php vendored
View File

@ -47,7 +47,7 @@ class cache_js {
public static function ident($files){
$ident = '';
foreach($files as $f){
$ident .= $f->SERVERPATH().';';}
$ident .= $f->SERVERPATH().';'.filemtime($f->SERVERPATH()).';';}
return sha1($ident);
}

View File

@ -7,18 +7,13 @@ table.sai_table tr:nth-child(odd) {
table.sai_table tr:hover {
background-color: #FFEFD5;
}
table.sai_table {
word-break: break-all;
}
a.active{
background-color: #e7e7e7;
}
#menu_start {
height: 50px;
font-size: 20px;
padding-top: 12px;
padding-left: 15px;
padding-right: 15px;
display: block;

View File

@ -33,10 +33,35 @@ class error_handler_dbwriter implements \SYSTEM\LOG\error_handler {
array_key_exists('HTTP_USER_AGENT',$_SERVER) ? $_SERVER['HTTP_USER_AGENT'] : null,
($user = \SYSTEM\SECURITY\security::getUser()) ? $user->id : null,$thrown ? 1 : 0));
if(!\property_exists(get_class($E), 'do_not_todo_log')){
\SYSTEM\SAI\saimod_sys_todo::exception($E,false);}
self::todo_exception($E,false);}
} catch (\Exception $E){
return false;} //Error -> Ignore
return false; //We just log and do not handle the error!
}
}
/**
* Save a Exception as ToDo in the Database
* This is used as Errorhandler in some form.
*
* @param \Exception $E Exception to be saved
* @param bool $thrown Was the Exception thrown?
* @param int $type Type of the Todo(Exception)
* @return bool Returns false
*/
public static function todo_exception(\Exception $E, $thrown, $type = \SYSTEM\SQL\system_todo::FIELD_TYPE_EXCEPTION){
try{
if(\property_exists(get_class($E), 'todo_logged') && $E->todo_logged){
return false;} //alrdy logged(this prevents proper thrown value for every system exception)
\SYSTEM\SQL\SYS_LOG_TODO_INSERT::Q1(array( get_class($E), $E->getMessage(), $E->getCode(), $E->getFile(), $E->getLine(), $E->getTraceAsString(),
getenv('REMOTE_ADDR'),round(microtime(true) - \SYSTEM\time::getStartTime(),5),date('Y-m-d H:i:s', microtime(true)),
$_SERVER["SERVER_NAME"],$_SERVER["SERVER_PORT"],$_SERVER['REQUEST_URI'], serialize($_POST),
array_key_exists('HTTP_REFERER', $_SERVER) ? $_SERVER['HTTP_REFERER'] : null,
array_key_exists('HTTP_USER_AGENT',$_SERVER) ? $_SERVER['HTTP_USER_AGENT'] : null,
($user = \SYSTEM\SECURITY\security::getUser()) ? $user->id : null,$thrown ? 1 : 0,$E->getMessage(),$type));
if(\property_exists(get_class($E), 'logged')){
$E->todo_logged = true;} //we just did log
} catch (\Exception $E){return false;} //Error -> Ignore
return false; //We just log and do not handle the error!
}
}

View File

@ -14,7 +14,7 @@ namespace SYSTEM\SQL;
/**
* QQ to log a execption to system_todo
*/
class SYS_SAIMOD_TODO_EXCEPTION_INSERT extends \SYSTEM\DB\QP {
class SYS_LOG_TODO_INSERT extends \SYSTEM\DB\QP {
/**
* Get Classname of the QQ
*

View File

@ -4,15 +4,15 @@ SYSTEM\autoload::registerFolder(dirname(__FILE__),'SYSTEM\SAI');
require_once dirname(__FILE__).'/saistart_sys_sai/autoload.inc';
//System Mod
require_once dirname(__FILE__).'/saimod_sys_log/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_security/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_mod/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_security/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_mod/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_config/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_api/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_page/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_text/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_files/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_cache/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_cron/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_api/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_page/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_text/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_files/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_cache/autoload.inc';
//require_once dirname(__FILE__).'/saimod_sys_cron/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_todo/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_git/autoload.inc';
require_once dirname(__FILE__).'/saimod_sys_docu/autoload.inc';

View File

@ -1,6 +1,6 @@
<li id="menu_api">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_api}" href="#!api">
<span class="glyphicon glyphicon-console" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_api}</span>
<li class="nav-item">
<a id="menu_api" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_api}" href="#!api">
<i class="fa fa-gears" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_api}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-console" aria-hidden="true"></span>&nbsp;&nbsp;${sai_api_title}</h4>
<h4>&nbsp;<span class="fa fa-gears" aria-hidden="true"></span>&nbsp;&nbsp;${sai_api_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -12,9 +12,9 @@
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_api">
<li><a href="#!api" id="menu_all">All</a></li>
<li class="nav-item"><a class="nav-link active" href="#!api" id="menu_all">All</a></li>
${tabopts}
<button onClick="system.load('api(new)',true);" class="btn-sm btn btn-success" style="height: 32px; font-size: 13px; float: right;"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> New</button>
<button onClick="system.load('api(new)',true);" class="btn-sm btn btn-success" style="height: 32px; font-size: 13px; float: right;"><span class="fa fa-plus" aria-hidden="true"></span> New</button>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab_api"></div>

View File

@ -1 +1 @@
<li><a href="#!api;group.${tab_id}" id="menu_group_${tab_id}">Group ${tab_id}</a></li>
<li class="nav-item"><a class="nav-link" href="#!api;group.${tab_id}" id="menu_group_${tab_id}">Group ${tab_id}</a></li>

View File

@ -1,6 +1,6 @@
<li id="menu_cache">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_cache}" href="#!cache">
<span class="glyphicon glyphicon-level-up" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_cache}</span>
<li class="nav-item">
<a id="menu_cache" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_cache}" href="#!cache">
<i class="fa fa-database" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_cache}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-level-up" aria-hidden="true"></span>&nbsp;&nbsp;${sai_cache_title}</h4>
<h4>&nbsp;<span class="fa fa-database" aria-hidden="true"></span>&nbsp;&nbsp;${sai_cache_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -11,7 +11,7 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
&nbsp;Entries: ${count} showing 100
<button type="button" class="btn-sm btn btn-warning pull-right" id="btn_cache_clear"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> ${basic_clear}</button>
<button type="button" class="btn-sm btn btn-warning pull-right" id="btn_cache_clear"><span class="fa fa-plus" aria-hidden="true"></span> ${basic_clear}</button>
<br><br>
</div>
</div>

View File

@ -1,5 +1,4 @@
<?php
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'SYSTEM\SAI');
//\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','SYSTEM\SQL');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_config');
\SYSTEM\SAI\sai::register('\SYSTEM\SAI\saimod_sys_config');

View File

@ -1,33 +1,24 @@
function init_saimod_sys_config() {
$("#sai_mod_table_basics").tablesorter();
$("#table_config").tablesorter();
}
function init_saimod_sys_config_basics() {
$("#sai_mod_table_basics").tablesorter();
$('#tabs_config li').each(function(){
$('#table_config').trigger('update');
$('#tabs_config li a').each(function(){
$(this).removeClass('active');});
$('#menu_tag_basics').parent().addClass('active');
//saimod_config_tablesort("sai_mod_table_basics");
$('#menu_tag_basics').addClass('active');
}
function init_saimod_sys_config_database() {
$("#sai_mod_table_database").tablesorter();
$('#tabs_config li').each(function(){
$('#table_config').trigger('update');
$('#tabs_config li a').each(function(){
$(this).removeClass('active');});
$('#menu_tag_database').parent().addClass('active');
//saimod_config_tablesort("sai_mod_table_database");
$('#menu_tag_database').addClass('active');
}
function init_saimod_sys_config_sai() {
$("#sai_mod_table_sai").tablesorter();
$('#tabs_config li').each(function(){
$('#table_config').trigger('update');
$('#tabs_config li a').each(function(){
$(this).removeClass('active');});
$('#menu_tag_sai').parent().addClass('active');
//saimod_config_tablesort("sai_mod_table_sai");
}
//function saimod_config_tablesort(id){
// var table_basics = document.getElementById(id);
// var sort = new Tablesort(table_basics, {descending: true});
// sort.refresh();
//}
$('#menu_tag_sai').addClass('active');
}

View File

@ -22,65 +22,6 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule {
*/
public static function sai_mod__SYSTEM_SAI_saimod_sys_config(){
$vars = \SYSTEM\PAGE\text::tag(\SYSTEM\SQL\system_text::TAG_SAI_CONFIG);
$vars['basics'] = $vars['database'] = $vars['sai'] = '';
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_ERRORREPORTING,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_ERRORREPORTING',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_ERRORREPORTING)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEPATH,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEPATH',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEPATH)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_RESULT,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_RESULT',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_RESULT)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS',
'value' =>implode(',',\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS))));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_TYPE,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_TYPE',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_TYPE)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_HOST,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_HOST',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_HOST)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PORT,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PORT',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PORT)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_USER,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_USER',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_USER)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PASSWORD,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PASSWORD',
'value' =>'&lt;hidden&gt;'));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME)));
$vars['sai'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_PROJECT,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_PROJECT',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_PROJECT)));
return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/saimod_sys_config.tpl'))->SERVERPATH(),$vars);
}
@ -90,38 +31,37 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule {
* @return string Returns HTML
*/
public static function sai_mod__SYSTEM_SAI_saimod_sys_config_action_basics(){
$vars = \SYSTEM\PAGE\text::tag(\SYSTEM\SQL\system_text::TAG_SAI_CONFIG);
$vars['basics'] = $vars['database'] = $vars['sai'] = '';
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result = '';
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_ERRORREPORTING,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_ERRORREPORTING',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_ERRORREPORTING)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEPATH,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEPATH',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEPATH)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_SYSTEMPATHREL)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_RESULT,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_RESULT',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_RESULT)));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS',
'value' =>implode(',',\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_LANGS))));
$vars['basics'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DEFAULT_LANG)));
return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_basics.tpl'))->SERVERPATH(),$vars);
return $result;
}
/**
@ -130,34 +70,33 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule {
* @return string Returns HTML
*/
public static function sai_mod__SYSTEM_SAI_saimod_sys_config_action_database(){
$vars = \SYSTEM\PAGE\text::tag(\SYSTEM\SQL\system_text::TAG_SAI_CONFIG);
$vars['database'] = '';
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result = '';
$result .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_TYPE,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_TYPE',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_TYPE)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_HOST,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_HOST',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_HOST)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PORT,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PORT',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PORT)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_USER,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_USER',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_USER)));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PASSWORD,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_PASSWORD',
'value' =>'&lt;hidden&gt;'));
$vars['database'] .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result .=\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_DB_DBNAME)));
return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_database.tpl'))->SERVERPATH(),$vars);
return $result;
}
/**
@ -166,14 +105,12 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule {
* @return string Returns HTML
*/
public static function sai_mod__SYSTEM_SAI_saimod_sys_config_action_sai(){
$vars['sai'] = '';
$vars['sai'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
$result = '';
$result .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_tr.tpl'))->SERVERPATH(),
array( 'id' =>\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_PROJECT,
'name' =>'\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_PROJECT',
'value' =>\SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_PROJECT)));
return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_sai.tpl'))->SERVERPATH(),$vars);
return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/config_database.tpl'))->SERVERPATH(),$vars);
return $result;
}
/**
@ -181,7 +118,9 @@ class saimod_sys_config extends \SYSTEM\SAI\SaiModule {
*
* @return string Returns <li> Menu for the Saimod
*/
public static function html_li_menu(){return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/menu.tpl'))->SERVERPATH());}
public static function menu(){
return new sai_module_menu( 10, sai_module_menu::POISITION_LEFT, sai_module_menu::DIVIDER_NONE,
\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_config/tpl/menu.tpl'))->SERVERPATH()));}
/**
* Returns if the Saimod is public(access for everyone)

View File

@ -1,12 +0,0 @@
<table class="table sai_table tablesorter" id="sai_mod_table_basics">
<thead>
<tr>
<th>ID <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
<th>Name <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
<th>Value <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
</tr>
</thead>
<tbody>
${basics}
</tbody>
</table>

View File

@ -1,12 +0,0 @@
<table class="table sai_table tablesorter" id="sai_mod_table_database">
<thead>
<tr>
<th>ID <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
<th>Name <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
<th>Value <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
</tr>
</thead>
<tbody>
${database}
</tbody>
</table>

View File

@ -1,12 +0,0 @@
<table class="table sai_table tablesorter" id="sai_mod_table_sai">
<thead>
<tr>
<th>ID <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
<th>Name <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
<th>Value <span class="glyphicon glyphicon-sort" aria-hidden="true"></span></th>
</tr>
</thead>
<tbody>
${sai}
</tbody>
</table>

View File

@ -1,6 +1,7 @@
<li id="menu_config">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_config}" href="#!config">
<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_config}</span>
<li class="nav-item">
<a id="menu_config" class="nav-link" data-toggle="tooltip" title="${sai_menu_config}" href="#!config">
<span class="d-md-none" style="padding-left: 15px;"></span>
<i class="fa fa-wrench" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_config}</span>
</a>
</li>

View File

@ -1,22 +1,26 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>&nbsp;&nbsp;${sai_config_title}</h4>
<div class="row">
<div class="col-12 sai_padding_off">
<h4 class="sai_padding_10 bg-primary sai_margin_off">&nbsp;<span class="fa fa-wrench" aria-hidden="true"></span>&nbsp;&nbsp;${sai_config_title}</h4>
</div>
</div>
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<hr>
<div class="col-md-2 sai_padding_off">
<ul class="nav bg-light flex-column" id="tabs_config">
<li class="nav-item"><a class="nav-link active" href="#!config" id="menu_tag_basics">Basics</a></li>
<li class="nav-item"><a class="nav-link" href="#!config(database)" id="menu_tag_database">Database</a></li>
<li class="nav-item"><a class="nav-link" href="#!config(sai)" id="menu_tag_sai">System Admin Interface</a></li>
</ul>
</div>
</div>
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_config">
<li><a href="#!config" id="menu_tag_basics">Basics</a></li>
<li><a href="#!config(database)" id="menu_tag_database">Database</a></li>
<li><a href="#!config(sai)" id="menu_tag_sai">System Admin Interface</a></li>
</ul>
<div class="tab-content sai_margin_top_10" id="tab_config"></div>
<div class="col-md-10 sai_padding_off sai_border_left">
<div class="table-responsive">
<table class="table table-striped table-condensed tablesorter sai_margin_off" id="table_config">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Value</th>
</tr>
</thead>
<tbody id="tab_config"></tbody>
</table>
</div>
</div>
</div>

View File

@ -16,9 +16,9 @@
</select>
</td>
<td>
<button type="button" class="btn-sm btn btn-warning btn_cron_status" _class="${class}" _i="${i}"><span class="glyphicon glyphicon-repeat" aria-hidden="true"></span></button>
<button type="button" class="btn-sm btn btn-success btn_cron_edit" _class="${class}" _min="${min}" _hour="${hour}" _day="${day}" _day_week="${day_week}" _month="${month}"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></button>
<button type="button" class="btn-sm btn btn-success btn_cron_run" _class="${class}"><span class="glyphicon glyphicon-time" aria-hidden="true"></span></button>
<button type="button" class="btn-sm btn btn-danger btn_cron_del" _class="${class}"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
<button type="button" class="btn-sm btn btn-warning btn_cron_status" _class="${class}" _i="${i}"><span class="fa fa-repeat" aria-hidden="true"></span></button>
<button type="button" class="btn-sm btn btn-success btn_cron_edit" _class="${class}" _min="${min}" _hour="${hour}" _day="${day}" _day_week="${day_week}" _month="${month}"><span class="fa fa-pencil" aria-hidden="true"></span></button>
<button type="button" class="btn-sm btn btn-success btn_cron_run" _class="${class}"><span class="fa fa-clock-o" aria-hidden="true"></span></button>
<button type="button" class="btn-sm btn btn-danger btn_cron_del" _class="${class}"><span class="fa fa-trash" aria-hidden="true"></span></button>
</td>
</tr>

View File

@ -1,6 +1,6 @@
<li id="menu_cron">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_cron}" href="#!cron">
<span class="glyphicon glyphicon-time" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_cron}</span>
<li class="nav-item">
<a id="menu_cron" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_cron}" href="#!cron">
<i class="fa fa-clock-o" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_cron}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-time" aria-hidden="true"></span>&nbsp;&nbsp;${sai_cron_title}</h4>
<h4>&nbsp;<span class="fa fa-clock-o" aria-hidden="true"></span>&nbsp;&nbsp;${sai_cron_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -41,7 +41,7 @@
<td></td>
<td></td>
<td></td>
<td><button type="button" class="btn-sm btn btn-success" id="btn_cron_add"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> ${basic_add}</button></td>
<td><button type="button" class="btn-sm btn btn-success" id="btn_cron_add"><span class="fa fa-plus" aria-hidden="true"></span> ${basic_add}</button></td>
</tr>
</table>
</div>

View File

@ -2,4 +2,4 @@
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'SYSTEM\SAI');
//\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','SYSTEM\SQL');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_docu');
\SYSTEM\SAI\sai::register('\SYSTEM\SAI\saimod_sys_docu');

View File

@ -63,7 +63,11 @@ class saimod_sys_docu extends \SYSTEM\SAI\SaiModule {
*
* @return string Returns <li> Menu for the Saimod
*/
public static function html_li_menu(){return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_docu/tpl/menu.tpl'))->SERVERPATH());}
public static function menu(){
return new sai_module_menu( 10,
sai_module_menu::POISITION_RIGHT,
sai_module_menu::DIVIDER_NONE,
\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_docu/tpl/menu.tpl'))->SERVERPATH()));}
/**
* Returns if the Saimod is public(access for everyone)

View File

@ -1,7 +1,7 @@
<li id="menu_docu">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_docu}" href="#!docu">
<span class="hidden-md hidden-lg hidden-xl hidden-sm" style="padding-left: 15px;"></span>
<span class="glyphicon glyphicon-book" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_docu}</span>
<li class="nav-item">
<a id="menu_docu" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_docu}" href="#!docu">
<span class="d-md-none" style="padding-left: 15px;"></span>
<i class="fa fa-book" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_docu}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-book" aria-hidden="true"></span>&nbsp;&nbsp;${sai_docu_title}</h4>
<h4>&nbsp;<span class="fa fa-book" aria-hidden="true"></span>&nbsp;&nbsp;${sai_docu_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -13,8 +13,8 @@
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_docu">
${tabopts}
<button id="btn_generate" class="btn-primary btn btn-sm" style="height: 32px; font-size: 13px; float: right;"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> ${basic_generate} HTML</button>
<button id="btn_generate_md" class="btn-primary btn btn-sm" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> ${basic_generate} MD</button>
<button id="btn_generate" class="btn-primary btn btn-sm" style="height: 32px; font-size: 13px; float: right;"><span class="fa fa-refresh" aria-hidden="true"></span> ${basic_generate} HTML</button>
<button id="btn_generate_md" class="btn-primary btn btn-sm" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;"><span class="fa fa-refresh" aria-hidden="true"></span> ${basic_generate} MD</button>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab_docu">

View File

@ -1 +1 @@
<li class="${active}"><a href="#!docu;cat.${tab_id}" id="menu_cat_${tab_id}">${tab_id_pretty}</a></li>
<li class="nav-item"><a class="nav-link ${active}" href="#!docu;cat.${tab_id}" id="menu_cat_${tab_id}">${tab_id_pretty}</a></li>

View File

@ -1 +1 @@
<li><a href="#!docu;cat.${tab_id};doc.${doc_id}" id="menu_doc_${doc_id}">${doc_id_pretty}</a></li>
<li class="nav-item"><a class="nav-link" href="#!docu;cat.${tab_id};doc.${doc_id}" id="menu_doc_${doc_id}">${doc_id_pretty}</a></li>

View File

@ -1,6 +1,6 @@
<li id="menu_files">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_files}" href="#!files">
<span class="glyphicon glyphicon-duplicate" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_files}</span>
<li class="nav-item">
<a id="menu_files" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_files}" href="#!files">
<i class="fa fa-files-o" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_files}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-duplicate" aria-hidden="true"></span>&nbsp;&nbsp;${sai_files_title}</h4>
<h4>&nbsp;<span class="fa fa-files-o" aria-hidden="true"></span>&nbsp;&nbsp;${sai_files_title}</h4>
<h5>&nbsp;<font color="#d9534f">${sai_files_title_warning}</font></h6>
</div>
</div>

View File

@ -19,6 +19,6 @@
<th></th>
<th></th>
<th></th>
<th><button type="submit" class="btn btn-sm btn_upload btn-success" cat="${cat}"><span class="glyphicon glyphicon-upload" aria-hidden="true"></span> ${basic_upload}</button></form></th>
<th><button type="submit" class="btn btn-sm btn_upload btn-success" cat="${cat}"><span class="fa fa-upload" aria-hidden="true"></span> ${basic_upload}</button></form></th>
</tr>
</table>

View File

@ -5,12 +5,12 @@
<a data-toggle="tooltip" title="<img src='${url}'/>" href="${url}" target="_blank" id="tooltip_${cat}_${i}">${url}</a>
</td>
<td>
<button type="submit" class="btn-warning btn btn-sm imgrnbtn" style="margin: 1px;;" cat="${cat}" id="${name}" textfield="#renametext_${cat}_${i}"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span></button>
<button type="submit" class="btn-warning btn btn-sm imgrnbtn" style="margin: 1px;;" cat="${cat}" id="${name}" textfield="#renametext_${cat}_${i}"><span class="fa fa-pencil" aria-hidden="true"></span></button>
</td>
<td>
<input type="text" id="renametext_${cat}_${i}" class="form-control" style="width: 100px; margin:0;" placeholder="new name...">
</td>
<td>
<button class="btn-danger btn btn-sm imgdelbtn" style="margin: 1px; margin-right: 3px" cat="${cat}" id="${name}"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span></button>
<button class="btn-danger btn btn-sm imgdelbtn" style="margin: 1px; margin-right: 3px" cat="${cat}" id="${name}"><span class="fa fa-trash" aria-hidden="true"></span></button>
</td>
</tr>

View File

@ -1 +1 @@
<li><a href="#!files;folder.${name}" id="menu_folder_${name}">${name}</a></li>
<li class="nav-item"><a class="nav-link" href="#!files;folder.${name}" id="menu_folder_${name}">${name}</a></li>

View File

@ -2,4 +2,4 @@
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'SYSTEM\SAI');
//\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','SYSTEM\SQL');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_git');
\SYSTEM\SAI\sai::register('\SYSTEM\SAI\saimod_sys_git');

View File

@ -68,7 +68,11 @@ class saimod_sys_git extends \SYSTEM\SAI\SaiModule {
*
* @return string Returns <li> Menu for the Saimod
*/
public static function html_li_menu(){return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_git/tpl/menu.tpl'))->SERVERPATH());}
public static function menu(){
return new sai_module_menu( 1,
sai_module_menu::POISITION_RIGHT,
sai_module_menu::DIVIDER_NONE,
\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_git/tpl/menu.tpl'))->SERVERPATH()));}
/**
* Returns if the Saimod is public(access for everyone)

View File

@ -1,9 +1,7 @@
</ul>
<ul class="nav navbar-nav navbar-right sai_divider_left">
<li id="menu_git">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_git}" href="#!git">
<span class="hidden-md hidden-lg hidden-xl hidden-sm" style="padding-left: 15px;"></span>
<span class="glyphicon glyphicon-saved" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_git}</span>
</a>
</li>
<li class="nav-item">
<a id="menu_git" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_git}" href="#!git">
<span class="d-md-none" style="padding-left: 15px;"></span>
<i class="fa fa-git" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_git}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-saved" aria-hidden="true"></span>&nbsp;&nbsp;${sai_git_title}</h4>
<h4>&nbsp;<span class="fa fa-save" aria-hidden="true"></span>&nbsp;&nbsp;${sai_git_title}</h4>
</div>
</div>
<div class="row-fluid">

View File

@ -2,4 +2,4 @@
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'SYSTEM\SAI');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','SYSTEM\SQL');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_log');
\SYSTEM\SAI\sai::register('\SYSTEM\SAI\saimod_sys_log');

View File

@ -2,9 +2,9 @@ google.load("visualization", "1", {packages:["corechart"]});
function init_saimod_sys_log() {
$("#sai_mod_log_table").tablesorter();
$('#tabs_log a').click(function (e) {
$('#tabs_log li').each(function(){
$('#tabs_log li a').each(function(){
$(this).removeClass('active');});
$(this).parent().addClass('active');
$(this).addClass('active');
});
};

View File

@ -427,9 +427,18 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule {
}
$vars['pagination'] = '';
$vars['page_last'] = floor($count/100);
$dots = false;
for($i=0;$i < ceil($count/100);$i++){
$data = array('page' => $i,'search' => $vars['search_encoded'], 'filter' => $filter, 'active' => ($i == $page) ? 'active' : '');
$vars['pagination'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_log/tpl/saimod_sys_log_pagination.tpl'))->SERVERPATH(), $data);
if(abs($page-$i) < 7){
$data = array('page' => $i,'search' => $vars['search_encoded'], 'filter' => $filter, 'active' => ($i == $page) ? 'active' : '');
$vars['pagination'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_log/tpl/saimod_sys_log_pagination.tpl'))->SERVERPATH(), $data);
$dots = false;
} else {
if(!$dots){
$dots = true;
$vars['pagination'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_log/tpl/saimod_sys_log_pagination_dots.tpl'))->SERVERPATH());
}
}
}
$vars['count'] = $count_filtered.'/'.$count;
$vars['error_filter'] = '';
@ -479,7 +488,11 @@ class saimod_sys_log extends \SYSTEM\SAI\SaiModule {
*
* @return string Returns <li> Menu for the Saimod
*/
public static function html_li_menu(){return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_log/tpl/menu.tpl'))->SERVERPATH());}
public static function menu(){
return new sai_module_menu( 1,
sai_module_menu::POISITION_LEFT,
sai_module_menu::DIVIDER_NONE,
\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_log/tpl/menu.tpl'))->SERVERPATH()));}
/**
* Returns if the Saimod is public(access for everyone)

View File

@ -1,6 +1,6 @@
<li id="menu_log">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_log}" href="#!log">
<span class="glyphicon glyphicon-alert" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_log}</span>
<li class="nav-item">
<a id="menu_log" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_log}" href="#!log">
<i class="fa fa-list" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_log}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-alert" aria-hidden="true"></span>&nbsp;&nbsp;${sai_log_title}</h4>
<h4>&nbsp;<span class="fa fa-list" aria-hidden="true"></span>&nbsp;&nbsp;${sai_log_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -10,16 +10,14 @@
</div>
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_log">
<li class="active"><a href="#!log" id="menu_loglist">${basic_log}</a></li>
<li><a href="#!log(stats)" id="menu_stats">${basic_analytics}</a></li>
<img id="loader" src="./files/sai/ajax-loader.gif" style="margin-left: 10px; margin-top: 10px; display: none; float: left"/>
<button onClick="system.load('log',true);" class="btn-success btn btn-sm" style="height: 32px; font-size: 13px; float: right;"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span>&nbsp;${basic_refresh}</button>
</ul><br>
<div class="tab-content">
<div class="tab-pane active" id="tab_log"></div>
</div>
<ul class="nav nav-tabs" id="tabs_log">
<li class="nav-item"><a class="nav-link active" href="#!log" id="menu_loglist">${basic_log}</a></li>
<li class="nav-item"><a class="nav-link" href="#!log(stats)" id="menu_stats">${basic_analytics}</a></li>
<img id="loader" src="./files/sai/ajax-loader.gif" style="margin-left: 10px; margin-top: 10px; display: none; float: left"/>
<button onClick="system.load('log',true);" class="btn-success btn btn-sm" style="height: 32px; font-size: 13px; float: right;"><span class="fa fa-refresh" aria-hidden="true"></span>&nbsp;${basic_refresh}</button>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab_log"></div>
</div>
</div>
</div>

View File

@ -1 +1 @@
<li class="${active}"><a href="#!log;filter.${filter};search.${search_encoded}">${filter}</a></li>
<li class="nav-item"><a class="nav-link ${active}" href="#!log;filter.${filter};search.${search_encoded}">${filter}</a></li>

View File

@ -1,7 +1,7 @@
<ul class="nav nav-pills" id="error_filter">
<li class="${active}"><a href="#!log;filter.%;search.${search_encoded}">${basic_all}</a></li>
<li class="nav-item"><a class="nav-link ${active}" href="#!log;filter.%;search.${search_encoded}">${basic_all}</a></li>
${error_filter}
<button class="btn-sm btn btn-success" state="log;filter.${filter};search." id="btn_search_log" type="submit" style="float: right; margin-left: 10px;"><span class="glyphicon glyphicon-search" aria-hidden="true"></span> ${basic_search}</button>
<button class="btn-sm btn btn-success" state="log;filter.${filter};search." id="btn_search_log" type="submit" style="float: right; margin-left: 10px;"><span class="fa fa-search" aria-hidden="true"></span> ${basic_search}</button>
<input class="input-medium search-query action-control" id="input_search_log" type="text" placeholder="${basic_placeholder_search}" size="20" style="float: right;" value="${search}"/>
</ul>
<div id="table_log">
@ -21,8 +21,8 @@
${table}
</table>
<ul class="pagination">
<li><a href="#!log;filter.${filter};search.${search_encoded};page.0">&laquo;</a></li>
<li class="page-item"><a class="page-link" href="#!log;filter.${filter};search.${search_encoded};page.0">&laquo;</a></li>
${pagination}
<li><a href="#!log;filter.${filter};search.${search_encoded};page.${page_last}">&raquo;</a></li>
<li class="page-item"><a class="page-link" href="#!log;filter.${filter};search.${search_encoded};page.${page_last}">&raquo;</a></li>
</ul>
</div>

View File

@ -1 +1 @@
<li class="${active}"><a href="#!log;filter.${filter};search.${search};page.${page}">${page}</a></li>
<li class="${active} page-item"><a class="page-link" href="#!log;filter.${filter};search.${search};page.${page}">${page}</a></li>

View File

@ -0,0 +1 @@
<li class="page-item"><a class="page-link disabled">...</a></li>

View File

@ -1,6 +1,6 @@
<div class="tabbable tabs-left" id="stats_tabs">
<ul class="nav nav-tabs">
<li class="active" db=""><a href="#tab_stats">Current Month</a></li>
<li class="nav-item" db=""><a class="nav-link active" href="#tab_stats">Current Month</a></li>
${dbfile_entries}
</ul>
<div class="tab-content">

View File

@ -1 +1 @@
<li db="${file}"><a href="#tab_stats">${file}</a></li>
<li class="nav-item" db="${file}"><a class="nav-link" href="#tab_stats">${file}</a></li>

View File

@ -2,4 +2,4 @@
\SYSTEM\autoload::registerFolder(dirname(__FILE__),'SYSTEM\SAI');
//\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq/','SYSTEM\SQL');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_login');
\SYSTEM\SAI\sai::register('\SYSTEM\SAI\saimod_sys_login');

View File

@ -75,7 +75,11 @@ class saimod_sys_login extends \SYSTEM\SAI\SaiModule {
*
* @return string Returns <li> Menu for the Saimod
*/
public static function html_li_menu(){return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_login/tpl/menu.tpl'))->SERVERPATH());}
public static function menu(){
return new sai_module_menu( 99,
sai_module_menu::POISITION_RIGHT,
sai_module_menu::DIVIDER_LEFT,
\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_login/tpl/menu.tpl'))->SERVERPATH()));}
/**
* Returns if the Saimod is public(access for everyone)

View File

@ -25,7 +25,7 @@
</div>
<div class="help-block"></div>
<input type="hidden" />
<button class="btn-sm btn btn-primary" style="clear: left; height: 32px; font-size: 13px;" type="submit" id="login_submit"><span class="glyphicon glyphicon-log-in" aria-hidden="true"></span> ${basic_login}</button>
<button class="btn-sm btn btn-primary" style="clear: left; height: 32px; font-size: 13px;" type="submit" id="login_submit"><span class="fa fa-sign-in" aria-hidden="true"></span> ${basic_login}</button>
</div>
</form>
<a href="#!login(register)" id="register_link">${basic_text_register}</a><br/>

View File

@ -96,7 +96,7 @@
<div class="control-group">
<div class="help-block"></div>
<input type="hidden" />
<button class="btn-sm btn btn-primary" style="clear: left; height: 32px; font-size: 13px;" type="submit" id="logout_submit"><span class="glyphicon glyphicon-log-out" aria-hidden="true"></span> ${basic_logout}</button>
<button class="btn-sm btn btn-primary" style="clear: left; height: 32px; font-size: 13px;" type="submit" id="logout_submit"><span class="fa fa-sign-out" aria-hidden="true"></span> ${basic_logout}</button>
</div>
</form>

View File

@ -1,7 +1,7 @@
<li id="menu_login" class="sai_divider_left">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_login}" href="#!login">
<span class="hidden-md hidden-lg hidden-xl hidden-sm" style="padding-left: 15px;"></span>
<span class="glyphicon glyphicon-log-out" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_login}</span>
<li class="nav-item">
<a id="menu_login" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_login}" href="#!login">
<span class="d-md-none" style="padding-left: 15px;"></span>
<i class="fa fa-user" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_login}</span>
</a>
</li>

View File

@ -19,7 +19,7 @@
</th>
<td>
<p style="float: right;">
<button class="btn-sm btn btn-primary" style="clear: left; height: 32px; font-size: 13px;" id="btn_resetpassword"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>&nbsp;&nbsp;Reset password</button>
<button class="btn-sm btn btn-primary" style="clear: left; height: 32px; font-size: 13px;" id="btn_resetpassword"><span class="fa fa-envelope" aria-hidden="true"></span>&nbsp;&nbsp;Reset password</button>
</p>
</td>
</tr>

View File

@ -27,15 +27,15 @@ class saimod_sys_mod extends \SYSTEM\SAI\SaiModule {
foreach($sys_mods as $mod){
$v = array();
$v['mod'] = $mod;
$v['public'] = \call_user_func(array($mod, 'right_public')) ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-remove"></span>';
$v['you'] = \call_user_func(array($mod, 'right_right')) ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-remove"></span>';
$v['public'] = \call_user_func(array($mod, 'right_public')) ? '<span class="fa fa-ok"></span>' : '<span class="fa fa-remove"></span>';
$v['you'] = \call_user_func(array($mod, 'right_right')) ? '<span class="fa fa-ok"></span>' : '<span class="fa fa-remove"></span>';
$vars['entries'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_mod/tpl/mod_tr.tpl'))->SERVERPATH(),$v);
}
$mod = \SYSTEM\SAI\sai::getStartModule();
$start = array();
$start['start_class'] = $mod;
$start['start_public'] = \call_user_func(array($mod, 'right_public')) ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-remove"></span>';
$start['start_access'] = \call_user_func(array($mod, 'right_right')) ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-remove"></span>';
$start['start_public'] = \call_user_func(array($mod, 'right_public')) ? '<span class="fa fa-ok"></span>' : '<span class="fa fa-remove"></span>';
$start['start_access'] = \call_user_func(array($mod, 'right_right')) ? '<span class="fa fa-ok"></span>' : '<span class="fa fa-remove"></span>';
$vars['saistart'] = \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_mod/tpl/saistart.tpl'))->SERVERPATH(),$start);
return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_mod/tpl/mod_table.tpl'))->SERVERPATH(),$vars);
}
@ -52,8 +52,8 @@ class saimod_sys_mod extends \SYSTEM\SAI\SaiModule {
foreach($mods as $mod){
$v = array();
$v['mod'] = $mod;
$v['public'] = \call_user_func(array($mod, 'right_public')) ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-remove"></span>';
$v['you'] = \call_user_func(array($mod, 'right_right')) ? '<span class="glyphicon glyphicon-ok"></span>' : '<span class="glyphicon glyphicon-remove"></span>';
$v['public'] = \call_user_func(array($mod, 'right_public')) ? '<span class="fa fa-ok"></span>' : '<span class="fa fa-remove"></span>';
$v['you'] = \call_user_func(array($mod, 'right_right')) ? '<span class="fa fa-ok"></span>' : '<span class="fa fa-remove"></span>';
$vars['entries'] .= \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_mod/tpl/mod_tr.tpl'))->SERVERPATH(),$v);
}
return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_mod/tpl/mod_table.tpl'))->SERVERPATH(),$vars);

View File

@ -1,6 +1,6 @@
<li id="menu_mod">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_mod}" href="#!mod">
<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_mod}</span>
<li class="nav-item">
<a id="menu_mod" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_mod}" href="#!mod">
<i class="fa fa-puzzle-piece" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_mod}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>&nbsp;&nbsp;${sai_mod_title}</h4>
<h4>&nbsp;<span class="fa fa-puzzle-piece" aria-hidden="true"></span>&nbsp;&nbsp;${sai_mod_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -12,9 +12,9 @@
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_mod">
<li class="active"><a href="#!mod" id="menu_mod_system">System Mods</a></li>
<li><a href="#!mod(project)" id="menu_mod_project">Project Mods</a></li>
<li><a href="#!mod(lib)" id="menu_mod_lib">Libs</a></li>
<li class="nav-item"><a class="nav-link active" href="#!mod" id="menu_mod_system">System Mods</a></li>
<li class="nav-item"><a class="nav-link" href="#!mod(project)" id="menu_mod_project">Project Mods</a></li>
<li class="nav-item"><a class="nav-link" href="#!mod(lib)" id="menu_mod_lib">Libs</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab_mod"></div>

View File

@ -1,6 +1,6 @@
<li id="menu_page">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_page}" href="#!page">
<span class="glyphicon glyphicon-blackboard" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_page}</span>
<li class="nav-item">
<a id="menu_page" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_page}" href="#!page">
<i class="fa fa-sitemap" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_page}</span>
</a>
</li>

View File

@ -44,5 +44,5 @@
<td><input type="text" id="new_page_php_class" placeholder="php class" style="width: 140px;"></td>
</tr>
</table>
<button type="button" class="btn-sm btn btn-default" onClick="system.load('page');"><span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span> Back</button>
<button type="button" class="btn-sm btn btn-success" id="addpage" style="float: right;"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add</button>
<button type="button" class="btn-sm btn btn-default" onClick="system.load('page');"><span class="fa fa-chevron-left" aria-hidden="true"></span> Back</button>
<button type="button" class="btn-sm btn btn-success" id="addpage" style="float: right;"><span class="fa fa-plus" aria-hidden="true"></span> Add</button>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-blackboard" aria-hidden="true"></span>&nbsp;&nbsp;${sai_page_title}</h4>
<h4>&nbsp;<span class="fa fa-sitemap" aria-hidden="true"></span>&nbsp;&nbsp;${sai_page_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -12,9 +12,9 @@
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_page">
<li><a href="#!page" id="menu_all">All</a></li>
<li class="nav-item"><a class="nav-link active" href="#!page" id="menu_all">All</a></li>
${tabopts}
<button onClick="system.load('page(new)',true);" class="btn btn-sm btn-success" style="height: 32px; font-size: 13px; float: right;"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> New</button>
<button onClick="system.load('page(new)',true);" class="btn btn-sm btn-success" style="height: 32px; font-size: 13px; float: right;"><span class="fa fa-plus" aria-hidden="true"></span> New</button>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="tab_page"></div>

View File

@ -1 +1 @@
<li><a href="#!page;group.${tab_id}" id="menu_group_${tab_id}">Group ${tab_id}</a></li>
<li class="nav-item"><a class="nav-link" href="#!page;group.${tab_id}" id="menu_group_${tab_id}">Group ${tab_id}</a></li>

View File

@ -1,6 +1,6 @@
<li id="menu_security">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_security}" href="#!security">
<span class="glyphicon glyphicon-lock" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_security}</span>
<li class="nav-item">
<a id="menu_security" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_security}" href="#!security">
<i class="fa fa-lock" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_security}</span>
</a>
</li>

View File

@ -1 +1 @@
<br><button type="submit" onClick="system.load('security(newright)');" class="btn btn-sm"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> ${basic_new_right}</button>
<br><button type="submit" onClick="system.load('security(newright)');" class="btn btn-sm"><span class="fa fa-plus" aria-hidden="true"></span> ${basic_new_right}</button>

View File

@ -1,2 +1,2 @@
<button type="submit" class="btn btn-sm btn-danger right_delete" onClick="system.load('security(delright);id.${id}');"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> ${basic_delete}</button>
<button type="submit" class="btn btn-sm btn-default right_edit" right_id="${id}"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span> ${basic_edit}</button>
<button type="submit" class="btn btn-sm btn-danger right_delete" onClick="system.load('security(delright);id.${id}');"><span class="fa fa-trash" aria-hidden="true"></span> ${basic_delete}</button>
<button type="submit" class="btn btn-sm btn-default right_edit" right_id="${id}"><span class="fa fa-pencil" aria-hidden="true"></span> ${basic_edit}</button>

View File

@ -1 +1 @@
<button type="submit" class="btn btn-sm btn-danger deleteuserright" right_id="${id}" user_id="${userid}"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> ${basic_delete}</button>
<button type="submit" class="btn btn-sm btn-danger deleteuserright" right_id="${id}" user_id="${userid}"><span class="fa fa-trash" aria-hidden="true"></span> ${basic_delete}</button>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-lock" aria-hidden="true"></span>&nbsp;&nbsp;${sai_security_title}</h4>
<h4>&nbsp;<span class="fa fa-lock" aria-hidden="true"></span>&nbsp;&nbsp;${sai_security_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -12,8 +12,8 @@
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="securitytab">
<li class="active"><a href="#!security" id="menu_users">Users</a></li>
<li><a href="#!security(rights)" id="menu_rights">Rights</a></li>
<li class="nav-item"><a class="nav-link active" href="#!security" id="menu_users">Users</a></li>
<li class="nav-item"><a class="nav-link" href="#!security(rights)" id="menu_rights">Rights</a></li>
<img id="loader" src="./files/sai/ajax-loader.gif" style="margin-left: 10px; margin-top: 10px; display: none; float: left"/>
</ul>
<div class="tab-content">

View File

@ -13,5 +13,5 @@
<td>${description}</td>
</tr>
</table>
<button id="deleteright_confirm" class="btn-danger btn btn-sm" right_id="${ID}" type="submit"><span class="glyphicon glyphicon-trash" aria-hidden="true"></span> ${basic_delete}</button>
<button id="deleteright_abort" onClick="system.load('security(rights)');" class="btn-default btn btn-sm" type="submit"><span class="glyphicon glyphicon-remove-sign" aria-hidden="true"></span> ${basic_abort}</button>
<button id="deleteright_confirm" class="btn-danger btn btn-sm" right_id="${ID}" type="submit"><span class="fa fa-trash" aria-hidden="true"></span> ${basic_delete}</button>
<button id="deleteright_abort" onClick="system.load('security(rights)');" class="btn-default btn btn-sm" type="submit"><span class="fa fa-remove-sign" aria-hidden="true"></span> ${basic_abort}</button>

View File

@ -13,4 +13,4 @@
<td><input id="addright_description" type="text"/></td>
</tr>
</table>
<button id="addright" class="btn btn-sm btn-default" type="submit"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> ${basic_add}</button>
<button id="addright" class="btn btn-sm btn-default" type="submit"><span class="fa fa-plus" aria-hidden="true"></span> ${basic_add}</button>

View File

@ -1 +1 @@
<li class="${active}"><a href="#!security;filter.${filter};search.${search}">${name}</a></li>
<li class="nav-item"><a class="nav-link ${active}" href="#!security;filter.${filter};search.${search}">${name}</a></li>

View File

@ -2,6 +2,6 @@
<td>${ID}</td>
<td>${name}</td>
<td>${description}</td>
<td><span class="glyphicon glyphicon-ok"></span></td>
<td><span class="fa fa-ok"></span></td>
<td>${remove_btn}</td>
</tr>

View File

@ -1,4 +1,4 @@
<tr>
<td colspan="4"><select id="adduserright_rightid">${right_options}</select></td>
<td><button type="submit" id="adduserright_add" class="btn-sm btn btn-success" user_id="${user_id}"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> ${basic_add_right}</button></td>
<td><button type="submit" id="adduserright_add" class="btn-sm btn btn-success" user_id="${user_id}"><span class="fa fa-plus" aria-hidden="true"></span> ${basic_add_right}</button></td>
</tr>

View File

@ -38,7 +38,7 @@
<tr>
<td></td>
<td>
<button style="width: 100%;" type="submit" id="btn_confirm_email" class="btn-sm btn btn-success" user="${username}" email="${email}"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>&nbsp;&nbsp;${basic_confirm_email}</button>
<button style="width: 100%;" type="submit" id="btn_confirm_email" class="btn-sm btn btn-success" user="${username}" email="${email}"><span class="fa fa-envelope" aria-hidden="true"></span>&nbsp;&nbsp;${basic_confirm_email}</button>
</td>
</tr>
<tr>
@ -47,13 +47,13 @@
<input class="input-medium" id="input_pw_new2" type="password" placeholder="${basic_password_new}" size="20"/>
</td>
<td>
<button style="width: 100%;" type="submit" id="btn_change_password" class="btn-sm btn btn-success" user="${username}" email="${email}"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>&nbsp;&nbsp;${basic_change_password}</button>
<button style="width: 100%;" type="submit" id="btn_change_password" class="btn-sm btn btn-success" user="${username}" email="${email}"><span class="fa fa-pencil" aria-hidden="true"></span>&nbsp;&nbsp;${basic_change_password}</button>
</td>
</tr>
<tr>
<td></td>
<td>
<button style="width: 100%;" type="submit" id="btn_reset_password" class="btn-sm btn btn-warning" user="${username}" email="${email}"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>&nbsp;&nbsp;${basic_reset_password}</button>
<button style="width: 100%;" type="submit" id="btn_reset_password" class="btn-sm btn btn-warning" user="${username}" email="${email}"><span class="fa fa-envelope" aria-hidden="true"></span>&nbsp;&nbsp;${basic_reset_password}</button>
</td>
</tr>
<tr>
@ -61,7 +61,7 @@
<input class="input-medium" id="input_new_email" type="text" placeholder="${basic_email_new}" size="20"/>
</td>
<td>
<button style="width: 100%;" type="submit" id="btn_change_email" class="btn-sm btn btn-warning" user="${username}" email="${email}"><span class="glyphicon glyphicon-envelope" aria-hidden="true"></span>&nbsp;&nbsp;${basic_change_email}</button>
<button style="width: 100%;" type="submit" id="btn_change_email" class="btn-sm btn btn-warning" user="${username}" email="${email}"><span class="fa fa-envelope" aria-hidden="true"></span>&nbsp;&nbsp;${basic_change_email}</button>
</td>
</tr>
<tr>
@ -69,13 +69,13 @@
<input class="input-medium" id="input_new_user" type="text" placeholder="${basic_username_new}" size="20"/>
</td>
<td>
<button style="width: 100%;" type="submit" id="btn_rename_account" class="btn-sm btn btn-danger" user="${username}" email="${email}"><span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>&nbsp;&nbsp;${basic_rename}</button>
<button style="width: 100%;" type="submit" id="btn_rename_account" class="btn-sm btn btn-danger" user="${username}" email="${email}"><span class="fa fa-pencil" aria-hidden="true"></span>&nbsp;&nbsp;${basic_rename}</button>
</td>
</tr>
<tr>
<td></td>
<td>
<button style="width: 100%;" type="submit" id="btn_delete_account" class="btn-sm btn btn-danger" user="${id}" email="${email}"><span class="glyphicon glyphicon-erase" aria-hidden="true"></span>&nbsp;&nbsp;${basic_delete}</button>
<button style="width: 100%;" type="submit" id="btn_delete_account" class="btn-sm btn btn-danger" user="${id}" email="${email}"><span class="fa fa-erase" aria-hidden="true"></span>&nbsp;&nbsp;${basic_delete}</button>
</td>
</tr>
</table>

View File

@ -1,7 +1,7 @@
<ul class="nav nav-pills" id="right_filter">
<li class="${active}"><a href="#!security;filter.all;search.${search}">${basic_all}</a></li>
<li class="nav-item"><a class="nav-link ${active}" href="#!security;filter.all;search.${search}">${basic_all}</a></li>
${right_filter}
<button class="btn-sm btn btn-success" state="security;filter.${filter};search." id="btn_search" type="submit" style="float: right; margin-left: 10px;"><span class="glyphicon glyphicon-search" aria-hidden="true"></span> ${basic_search}</button>
<button class="btn-sm btn btn-success" state="security;filter.${filter};search." id="btn_search" type="submit" style="float: right; margin-left: 10px;"><span class="fa fa-search" aria-hidden="true"></span> ${basic_search}</button>
<input class="input-medium search-query action-control" id="input_search" type="text" placeholder="${basic_placeholder_search}" size="20" style="float: right;" value="${search}"/>
</ul>
<div id="table_security">

View File

@ -1,6 +1,6 @@
<li id="menu_text">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_text}" href="#!text">
<span class="glyphicon glyphicon-text-size" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_text}</span>
<li class="nav-item">
<a id="menu_text" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_text}" href="#!text">
<i class="fa fa-edit" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_text}</span>
</a>
</li>

View File

@ -1,6 +1,6 @@
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<h4>&nbsp;<span class="glyphicon glyphicon-text-size" aria-hidden="true"></span>&nbsp;&nbsp;${sai_text_title}</h4>
<h4>&nbsp;<span class="fa fa-edit" aria-hidden="true"></span>&nbsp;&nbsp;${sai_text_title}</h4>
</div>
</div>
<div class="row-fluid">
@ -12,11 +12,11 @@
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_text">
<li><a href="#!text" id="menu_tag_all">${basic_all}</a></li>
<li><a href="#!text;tag.notag" id="menu_tag_notag">${basic_no_tag}</a></li>
<li class="nav-item"><a class="nav-link" href="#!text" id="menu_tag_all">${basic_all}</a></li>
<li class="nav-item"><a class="nav-link" href="#!text;tag.notag" id="menu_tag_notag">${basic_no_tag}</a></li>
${tabopts}
<button class="btn-sm btn btn-success content_add" onClick="system.load('text(edittext(editor));id.${new_id};lang.${new_lang}');" style="margin-left: 15px; float: right;"><span class="glyphicon glyphicon-plus" aria-hidden="true"></span> ${basic_add}</button>
<button type="submit" value="${basic_show_all}" id="btn_show_all" class="btn-sm btn btn-primary" style="margin-left: 15px; float: right;"><span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span> ${basic_show_all}</button>
<button class="btn-sm btn btn-success content_add" onClick="system.load('text(edittext(editor));id.${new_id};lang.${new_lang}');" style="margin-left: 15px; float: right;"><span class="fa fa-plus" aria-hidden="true"></span> ${basic_add}</button>
<button type="submit" value="${basic_show_all}" id="btn_show_all" class="btn-sm btn btn-primary" style="margin-left: 15px; float: right;"><span class="fa fa-eye" aria-hidden="true"></span> ${basic_show_all}</button>
</ul>
<div class="tab-content sai_margin_top_10" id="tab_content"></div>
</div>

View File

@ -1 +1 @@
<li class="${active}"><a href="#!text;tag.${tag};filter.${filter};search.${search}">${name}</a></li>
<li class="nav-item"><a class="nav-link ${active}" href="#!text;tag.${tag};filter.${filter};search.${search}">${name}</a></li>

View File

@ -1,12 +1,12 @@
<ul class="nav nav-pills" id="right_filter">
<li class="${active}"><a href="#!text;tag.${tag};filter.all;search.${search}">${basic_all}</a></li>
<li class="nav-item"><a class="nav-link ${active}" href="#!text;tag.${tag};filter.all;search.${search}">${basic_all}</a></li>
${lang_filter}
<button class="btn-sm btn btn-success" state="text;tag.${tag};filter.${filter};search." id="btn_search" type="submit" style="float: right; margin-left: 10px;"><span class="glyphicon glyphicon-search" aria-hidden="true"></span> ${basic_search}</button>
<input class="input-medium search-query action-control" id="input_search" type="text" placeholder="${basic_placeholder_search}" size="20" style="float: right;" value="${search}"/>
</ul>
<div id="table_text">
<h6>${basic_rows}: ${count} ${basic_page}: ${page}</h6>
<table class="table table-hover table-condensed sai_table tablesorter" id="sai_mod_text_table" style="overflow: auto;">
<table class="table table-hover table-condensed sai_table tablesorter" id="sai_mod_text_table">
<thead>
<tr>
<th>${table_id}</th>

View File

@ -1 +1 @@
<li style="${style}"><a href="#!text;tag.${tag}" id="menu_tag_${tag}">${tag}(${count})</a></li>
<li class="nav-item" style="${style}"><a class="nav-link" href="#!text;tag.${tag}" id="menu_tag_${tag}">${tag}(${count})</a></li>

View File

@ -1 +1 @@
<li style="${style}"><a href="#!text(edittext(editor));id.${id};lang.${lang}" class="${default}" id="menu_lang_${lang}">${lang}</a></li>
<li class="nav-item" style="${style}"><a href="#!text(edittext(editor));id.${id};lang.${lang}" class="${default} nav-link" id="menu_lang_${lang}">${lang}</a></li>

View File

@ -3,7 +3,7 @@
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/stats','SYSTEM\SAI');
\SYSTEM\autoload::registerFolder(dirname(__FILE__).'/qq','SYSTEM\SQL');
\SYSTEM\SAI\sai::register_sys('\SYSTEM\SAI\saimod_sys_todo');
\SYSTEM\SAI\sai::register('\SYSTEM\SAI\saimod_sys_todo');
\SYSTEM\SAI\saimod_sys_todo::register('\SYSTEM\SAI\todo_stats_gen');
\SYSTEM\SAI\saimod_sys_todo::register('\SYSTEM\SAI\todo_stats_user');
\SYSTEM\SAI\saimod_sys_todo::register('\SYSTEM\SAI\todo_stats_report');

View File

@ -398,7 +398,11 @@ class saimod_sys_todo extends \SYSTEM\SAI\SaiModule {
*
* @return string Returns <li> Menu for the Saimod
*/
public static function html_li_menu(){return \SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_todo/tpl/menu.tpl'))->SERVERPATH());}
public static function menu(){
return new sai_module_menu( 15,
sai_module_menu::POISITION_LEFT,
sai_module_menu::DIVIDER_NONE,
\SYSTEM\PAGE\replace::replaceFile((new \SYSTEM\PSAI('modules/saimod_sys_todo/tpl/menu.tpl'))->SERVERPATH()));}
/**
* Returns if the Saimod is public(access for everyone)
@ -433,29 +437,4 @@ class saimod_sys_todo extends \SYSTEM\SAI\SaiModule {
$_POST = $data; //save data in post
self::exception(new \Exception($message), false, \SYSTEM\SQL\system_todo::FIELD_TYPE_REPORT);
return \SYSTEM\LOG\JsonResult::ok();}
/**
* Save a Exception as ToDo in the Database
* This is used as Errorhandler in some form.
*
* @param \Exception $E Exception to be saved
* @param bool $thrown Was the Exception thrown?
* @param int $type Type of the Todo(Exception)
* @return bool Returns false
*/
public static function exception(\Exception $E, $thrown, $type = \SYSTEM\SQL\system_todo::FIELD_TYPE_EXCEPTION){
try{
if(\property_exists(get_class($E), 'todo_logged') && $E->todo_logged){
return false;} //alrdy logged(this prevents proper thrown value for every system exception)
\SYSTEM\SQL\SYS_SAIMOD_TODO_EXCEPTION_INSERT::Q1( array( get_class($E), $E->getMessage(), $E->getCode(), $E->getFile(), $E->getLine(), $E->getTraceAsString(),
getenv('REMOTE_ADDR'),round(microtime(true) - \SYSTEM\time::getStartTime(),5),date('Y-m-d H:i:s', microtime(true)),
$_SERVER["SERVER_NAME"],$_SERVER["SERVER_PORT"],$_SERVER['REQUEST_URI'], serialize($_POST),
array_key_exists('HTTP_REFERER', $_SERVER) ? $_SERVER['HTTP_REFERER'] : null,
array_key_exists('HTTP_USER_AGENT',$_SERVER) ? $_SERVER['HTTP_USER_AGENT'] : null,
($user = \SYSTEM\SECURITY\security::getUser()) ? $user->id : null,$thrown ? 1 : 0,$E->getMessage(),$type));
if(\property_exists(get_class($E), 'logged')){
$E->todo_logged = true;} //we just did log
} catch (\Exception $E){return false;} //Error -> Ignore
return false; //We just log and do not handle the error!
}
}

View File

@ -1,6 +1,6 @@
<li id="menu_todo">
<a data-toggle="tooltip" data-placement="bottom" title="${sai_menu_todo}" href="#!todo">
<span class="glyphicon glyphicon-list" aria-hidden="true"></span>
<span class="hidden-md hidden-lg hidden-xl hidden-sm">&nbsp;&nbsp;${sai_menu_todo}</span>
<li class="nav-item">
<a id="menu_todo" class="nav-link" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_todo}" href="#!todo">
<i class="fa fa-tasks" aria-hidden="true"></i>
<span class="d-md-none">&nbsp;&nbsp;${sai_menu_todo}</span>
</a>
</li>

View File

@ -12,9 +12,9 @@
<div class="col-md-12 sai_padding_off">
<div class="tabbable">
<ul class="nav nav-tabs" id="tabs_todo">
<li class="active"><a href="#!todo" id="menu_todolist">ToDo</a></li>
<li><a href="#!todo(doto)" id="menu_doto">DoTo</a></li>
<li><a href="#!todo(stats)" id="menu_stats">Statistics</a></li>
<li class="nav-item"><a class="nav-link active" href="#!todo" id="menu_todolist">ToDo</a></li>
<li class="nav-item"><a class="nav-link" href="#!todo(doto)" id="menu_doto">DoTo</a></li>
<li class="nav-item"><a class="nav-link" href="#!todo(stats)" id="menu_stats">Statistics</a></li>
<img id="img_loader" src="./files/sai/ajax-loader.gif" style="margin-left: 10px; margin-top: 10px; display: none; float: left"/>
<button id="btn_refresh" class="btn-primary btn btn-sm" onClick="system.load('todo',true);" style="height: 32px; font-size: 13px; float: right;"><span class="glyphicon glyphicon-refresh" aria-hidden="true"></span> ${basic_refresh}</button>
<button id="btn_close_all" class="btn-danger btn btn-sm" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;"><span class="glyphicon glyphicon-minus-sign" aria-hidden="true"></span> ${basic_close_all}</button>

View File

@ -1,12 +1,12 @@
<div id="table-wrapper">
<ul class="nav nav-pills" id="error_filter">
<li class="${filter_all}"><a href="#!${state};filter.all;search.${search}">${basic_all}</a></li>
<li class="${filter_mine}"><a href="#!${state};filter.mine;search.${search}">${basic_mine}</a></li>
<li class="${filter_free}"><a href="#!${state};filter.free;search.${search}">${basic_free}</a></li>
<li class="${filter_others}"><a href="#!${state};filter.others;search.${search}">${basic_others}</a></li>
<li class="${filter_gen}"><a href="#!${state};filter.gen;search.${search}">${basic_generated}</a></li>
<li class="${filter_user}"><a href="#!${state};filter.user;search.${search}">${basic_user}</a></li>
<li class="${filter_report}"><a href="#!${state};filter.report;search.${search}">${basic_report}</a></li>
<li class="nav-item ${filter_all}"><a class="nav-link" href="#!${state};filter.all;search.${search}">${basic_all}</a></li>
<li class="nav-item ${filter_mine}"><a class="nav-link" href="#!${state};filter.mine;search.${search}">${basic_mine}</a></li>
<li class="nav-item ${filter_free}"><a class="nav-link" href="#!${state};filter.free;search.${search}">${basic_free}</a></li>
<li class="nav-item ${filter_others}"><a class="nav-link" href="#!${state};filter.others;search.${search}">${basic_others}</a></li>
<li class="nav-item ${filter_gen}"><a class="nav-link" href="#!${state};filter.gen;search.${search}">${basic_generated}</a></li>
<li class="nav-item ${filter_user}"><a class="nav-link" href="#!${state};filter.user;search.${search}">${basic_user}</a></li>
<li class="nav-item ${filter_report}"><a class="nav-link" href="#!${state};filter.report;search.${search}">${basic_report}</a></li>
<button class="btn-sm btn btn-success" state="${state};filter.${filter};search." id="btn_search_todo" type="submit" style="float: right; margin-left: 10px;"><span class="glyphicon glyphicon-search" aria-hidden="true"></span> ${basic_search}</button>
<input class="input-medium search-query action-control" id="input_search_todo" type="text" placeholder="${basic_placeholder_search}" size="20" style="float: right;" value="${search}"/>
</ul>
@ -21,8 +21,8 @@
${todo_list_elements}
</table>
<ul class="pagination">
<li><a href="#!${state};filter.${filter};search.${search};page.0">&laquo;</a></li>
<li class="page-item"><a class="page-link" href="#!${state};filter.${filter};search.${search};page.0">&laquo;</a></li>
${pagination}
<li><a href="#!${state};filter.${filter};search.${search};page.${page_last}">&raquo;</a></li>
<li class="page-item"><a class="page-link" href="#!${state};filter.${filter};search.${search};page.${page_last}">&raquo;</a></li>
</ul>
</div>

View File

@ -1 +1 @@
<li class="${active}"><a href="#!${state};filter.${filter};search.${search};page.${page}">${page}</a></li>
<li class="page-item"><a class="page-link ${active}" href="#!${state};filter.${filter};search.${search};page.${page}">${page}</a></li>

View File

@ -12,35 +12,35 @@
Week of the year: <font style="color: orange;">${week_number}</font>, ${date}
</div>
</div>
<div class="row-fluid">
<div class="row">
<div class="col-md-6">
<div id="project" class="panel panel-default sai_gridbox">
<div class="panel-heading"><a href="#!config">${basic_project}</a></div>
<div class="panel-body">
<div class="inner-page">
<b>${basic_name}:</b> ${project_name}<br/>
<b>${basic_url}:</b> <a href="${project_url}" target="_blank">${project_url}</a><br/>
<b>${basic_progress}:</b> ${project}%<br/>
<br/>
<table class="table table-hover table-condensed sai_table" style="width: 100%">
<tr>
<th>${table_username}</th>
<th>${table_open}</th>
<th>${table_closed}</th>
<th>${table_all}</th>
<th>${table_percentage}</th>
</tr>
${userstats}
</table>
</div>
<div id="project" class="card sai_gridbox">
<div class="card-header"><a href="#!config">${basic_project}</a></div>
<div class="card-body">
<div class="inner-page">
<b>${basic_name}:</b> ${project_name}<br/>
<b>${basic_url}:</b> <a href="${project_url}" target="_blank">${project_url}</a><br/>
<b>${basic_progress}:</b> ${project}%<br/>
<br/>
<table class="table table-hover table-condensed sai_table" style="width: 100%">
<tr>
<th>${table_username}</th>
<th>${table_open}</th>
<th>${table_closed}</th>
<th>${table_all}</th>
<th>${table_percentage}</th>
</tr>
${userstats}
</table>
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div id="project" class="panel panel-default sai_gridbox">
<div class="panel-heading"><a href="#!login">${basic_logout}</a></div>
<div class="panel-body">
<div class="inner-page">
<div id="project" class="card sai_gridbox">
<div class="card-header"><a href="#!login">${basic_logout}</a></div>
<div class="card-body">
<div class="inner-page">
<table class="table sai_table table-hover table-condensed">
<tr>
<th>${basic_username}</th>
@ -65,25 +65,25 @@
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row-fluid">
<div id="analytics" class="col-md-6">
<div class="panel panel-default sai_gridbox">
<div class="panel-heading"><a href="#!log(stats)">${basic_analytics}</a></div>
<div class="panel-body">
<div class="row">
<div id="analytics" class="col-md-6" style="margin-top: 25px;">
<div class="card sai_gridbox">
<div class="card-header"><a href="#!log(stats)">${basic_analytics}</a></div>
<div class="card-body">
<div class="inner-page">
${analytics}
</div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="panel panel-default sai_gridbox">
<div class="panel-heading"><a href="#!git">${basic_git}</a></div>
<div class="panel-body">
<div class="col-md-6" style="margin-top: 25px;">
<div class="card sai_gridbox">
<div class="card-header"><a href="#!git">${basic_git}</a></div>
<div class="card-body">
<div class="inner-page">
${git}
</div>
@ -92,21 +92,25 @@
</div>
</div>
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<div class="well" id="todo">
<h2 class="muted"><a href="#!todo">${basic_todo}</a></h2>
<b>${basic_status}:</b> ${project_closed}/${project_all}<br/>
<b>${basic_progress}:</b> ${project}%
<div id="todo_entries"></div>
<div class="col-md-12 sai_padding_off" style="margin-top: 25px;">
<div class="card" id="todo">
<div class="card-header"><a href="#!todo">${basic_todo}</a></div>
<div class="card-body">
<b>${basic_status}:</b> ${project_closed}/${project_all}<br/>
<b>${basic_progress}:</b> ${project}%
<div id="todo_entries"></div>
</div>
</div>
</div>
</div>
<div class="row-fluid">
<div class="col-md-12 sai_padding_off">
<div class="well" id="log">
<h2 class="muted"><a href="#!log">${basic_log}</a></h2>
<h4 class="muted">100 ${sai_log_latest_entries}</h4>
<div id="log_entries"></div>
<div class="col-md-12 sai_padding_off" style="margin-top: 25px;">
<div class="card" id="log">
<div class="card-header"><a href="#!log">${basic_log}</a></div>
<div class="card-body">
<h4 class="muted">100 ${sai_log_latest_entries}</h4>
<div id="log_entries"></div>
</div>
</div>
</div>
</div>

View File

@ -1,3 +1,3 @@
<a class="active sai_divider_right pull-left" id="menu_start" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_start}" href="#">
<span class="glyphicon glyphicon-home" aria-hidden="true"></span>&nbsp;&nbsp;SAI
<a class="active sai_divider_right navbar-brand" style="margin:0;" id="menu_start" data-toggle="tooltip" data-placement="bottom" title="${sai_menu_start}" href="#">
<i class="fa fa-home" aria-hidden="true"></i>&nbsp;&nbsp;SAI
</a>

View File

@ -10,14 +10,14 @@
}
#footer{
text-align: right;
padding-right: 20px;
padding-right: 5px;
padding-top: 5px;
color: #777;
}
#footer a{
color: #777;
}
#content {
padding-top: 20px;
box-sizing: border-box;
}
.carousel-img{

View File

@ -20,15 +20,23 @@ class default_page implements \SYSTEM\PAGE\DefaultPage {
*
* @return string Returns html of the System Saimod Menu.
*/
private static function menu_sys(){
$result = '';
$mods = \SYSTEM\SAI\sai::getSysModules();
private static function menu_left(){
$result = array();
$mods = \SYSTEM\SAI\sai::getModules();
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'));}
$menu = \call_user_func(array($mod, 'menu'));
if($menu->position === sai_module_menu::POISITION_LEFT){
$result[] = $menu;}
}
}
return $result;
usort($result, function($a, $b){return $a->order > $b->order;});
$html = '';
foreach($result as $menu){
$html .= $menu->html();}
return $html;
}
/**
@ -36,15 +44,23 @@ class default_page implements \SYSTEM\PAGE\DefaultPage {
*
* @return string Returns html of the Users Saimod Menu.
*/
private static function menu_proj(){
$result = '';
private static function menu_right(){
$result = array();
$mods = \SYSTEM\SAI\sai::getModules();
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'));}
$menu = \call_user_func(array($mod, 'menu'));
if($menu->position === sai_module_menu::POISITION_RIGHT){
$result[] = $menu;}
}
}
return $result;
usort($result, function($a, $b){return $a->order > $b->order;});
$html = '';
foreach($result as $menu){
$html .= $menu->html();}
return $html;
}
/**
@ -68,6 +84,7 @@ class default_page implements \SYSTEM\PAGE\DefaultPage {
return \SYSTEM\HTML\html::link(\LIB\lib_bootstrap::css()->WEBPATH(false)).
\SYSTEM\HTML\html::link(\SYSTEM\CACHE\cache_css::minify(
array( \LIB\lib_tablesorter::css(),
\LIB\lib_font_awesome::css(),
\LIB\lib_system::css(),
new \SYSTEM\PSAI('page/css/sai_classes.css'),
new \SYSTEM\PSAI('page/css/sai.css'))));
@ -81,6 +98,7 @@ class default_page implements \SYSTEM\PAGE\DefaultPage {
public static function js(){
return \SYSTEM\HTML\html::script( \SYSTEM\CACHE\cache_js::minify(
array( \LIB\lib_jquery::js(),
\LIB\lib_popper::js(),
\LIB\lib_bootstrap::js(),
\LIB\lib_tablesorter::js(),
\LIB\lib_bootstrap_growl::js(),
@ -104,8 +122,8 @@ class default_page implements \SYSTEM\PAGE\DefaultPage {
$vars['js'] = self::js();}
$vars['menu_languages'] = self::lang_menu('./sai.php');
$vars['menu_start'] = self::menu_start();
$vars['menu_sys'] = self::menu_sys();
$vars['menu_proj'] = self::menu_proj();
$vars['menu_left'] = self::menu_left();
$vars['menu_right'] = self::menu_right();
$vars = array_merge($vars,\SYSTEM\PAGE\text::tag(\SYSTEM\SQL\system_text::TAG_SAI_DEFAULT),
array( 'project' => \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_SAI_CONFIG_PROJECT),
'project_url' => \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL)));

View File

@ -1,7 +1,7 @@
$(document).ready(function() {
new SYSTEM('./sai.php',42,'start',sys_hashchange);
$('[data-toggle="tooltip"]').tooltip();
$('.navbar-collapse a').click(function(){
$('.navbar-collapse a:not(.dropdown-toggle)').click(function(){
$(".navbar-collapse").collapse('hide');
});
});
@ -9,7 +9,7 @@ $(document).ready(function() {
function sys_hashchange(state){
var state_ = state ? state.split(';')[0].split('(')[0] : state;
var state_ = state_ ? state_.split('#')[0] : state;
$('.nav li,#sai_navbar li, #project_navbar li, #menu_start').each(function(){
$('.sai_menu li a, #menu_start').each(function(){
$(this).removeClass('active');});
if($('#menu_'+state_).length){
$('#menu_'+state_).addClass('active');

View File

@ -1 +1 @@
<a href="javascript:system.language('${lang}');"><img src="./files/sai/flag_${lang}.png" alt="${lang}" width="16" height="11"></a>&nbsp;
<a class="dropdown-item" href="javascript:system.language('${lang}');"><img src="./files/sai/flag_${lang}.png" alt="${lang}" width="16" height="11">&nbsp;${lang}</a>&nbsp;

View File

@ -7,57 +7,84 @@
<link rel="icon" type="image/png" href="./files/sai/logo_sai.png"/>
${css}
${js}
<style>
.sai_menu li a.active, #menu_start.active{
background-color: #007bff!important;
}
</style>
<style>
.divider-vertical {
height: parent;
margin: 0;
overflow: hidden;
border-left: 1px solid #e9ecef;
}
</style>
<style>
table.tablesorter thead tr th.tablesorter-headerAsc:after,
table.tablesorter thead tr th.tablesorter-headerDesc:after,
table.tablesorter thead tr th.tablesorter-header:after {
float: right;
font-family: FontAwesome;
}
table.tablesorter thead tr th.tablesorter-header:after {
content: "\f0dc";
}
table.tablesorter thead tr th.tablesorter-headerAsc:after {
content: "\f0de";
}
table.tablesorter thead tr th.tablesorter-headerDesc:after {
content: "\f0dd";
}
.tablesorter-header-inner{ float: left;}
</style>
<style>
.sai_border_left{
border-left: #dee2e6 1px solid;
}
</style>
</head>
<body>
<div class="container">
<div class="container-fluid">
<div class="row">
<div class="col-md-2">
${menu_languages}
</div>
<!-- div class="col-md-10 sai_menu_first sai_left_divider" -->
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="col-md-10 sai_margin_left_off sai_padding_left_off sai_padding_right_off">
<nav class="navbar navbar-default sai_margin_bottom_off">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed pull-left" data-toggle="collapse" data-target="#menu-collapse" aria-expanded="false" style="margin-left: 5px;">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
${menu_start}
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#menu-project-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="col-md-12 sai_margin_left_off sai_padding_left_off sai_padding_right_off">
<nav class="navbar navbar-expand-lg navbar-light bg-light sai_margin_bottom_off sai_padding_off">
<button class="navbar-toggler collapsed" type="button" data-toggle="collapse" data-target="#menu-collapse" aria-controls="menu-collapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
<!--<span style="font-weight: bold; font-size: large;">&nbsp;DEMOCRACY</span>-->
</button>
${menu_start}
<div class="collapse navbar-collapse navHeaderCollapse sai_margin_left_off sai_padding_left_off" id="menu-collapse">
<ul class="nav navbar-nav sai_menu_first">
${menu_sys}
<ul class="navbar-nav sai_menu">
${menu_left}
</ul>
<ul class="navbar-nav ml-auto">
<li class="divider-vertical"></li>
<li class="dropdown-divider"></li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle " href="#" id="languageDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<span class="d-md-none" style="padding-left: 15px;"></span>
<i class="fa fa-language"></i>
</a>
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="languageDropdown">
${menu_languages}
</div>
</li>
<li class="divider-vertical"></li>
<li class="dropdown-divider"></li>
${menu_right}
</ul>
</div>
</nav>
</div>
</div>
<div class="row">
<div class="col-md-2" style="padding-top: 20px;">
<div class="collapse navbar-collapse sai_padding_off" id="menu-project-collapse">
<ul class="nav nav-pills nav-stacked head-menu">
${menu_proj}
</ul>
</div>
</div>
<div class="col-md-10 sai_margin_left_off">
<div class="row">
<div id="content">
</div>
</div>
<div class="row">
<hr>
<div id="footer"><p>${sai_copyright}</p></div>
</div>
<div id="content" class="col-12"></div>
</div>
<div class="row">
<div class="col-12 sai_padding_off">
<hr class="sai_margin_off">
<div id="footer">${sai_copyright}</div>
</div>
</div>
</div>

View File

@ -76,7 +76,7 @@ class SaiModule extends \SYSTEM\API\api_default{
*
* @return string Returns HTML of the <li> menu for the Saimod
*/
public static function html_li_menu(){
public static function menu(){
throw new \RuntimeException("Unimplemented!");}
/**
* Check public state for the Saimod.

View File

@ -18,9 +18,7 @@ class sai {
/** string Classname of the Module which should be loaded at start */
private static $module_start = '\SYSTEM\SAI\saistart_sys_sai';
/** array Classnames of all registered Sai user Modules */
private static $modules = array(); //only strings!
/** array Classnames of all registered Sai system Modules */
private static $modules_sys = array(); //only strings!
private static $modules = array(); //only strings!
/**
* Check if a given SaiModuleClass is valid
@ -47,7 +45,7 @@ class sai {
self::$module_start = $module;}
/**
* Register a Sai user Module
* Register a Sai Module
*
* @param string $module Classname of the Module
* @return null Returns null.
@ -56,17 +54,6 @@ class sai {
if(!self::check_module($module)){
throw new \SYSTEM\LOG\ERROR('Problem with your Sysmodule class: '.$module.'; it might not be available or inherits from the wrong class!');}
array_push(self::$modules,$module);}
/**
* Register a Sai system Module
*
* @param string $module Classname of the Module
* @return null Returns null.
*/
public static function register_sys($module){
if(!self::check_module($module)){
throw new \SYSTEM\LOG\ERROR('Problem with your Sysmodule class: '.$module.'; it might not be available or inherits from the wrong class!');}
array_push(self::$modules_sys,$module);}
/**
* Get the classname of the Startmodule
@ -83,14 +70,6 @@ class sai {
*/
public static function getModules(){
return self::$modules;}
/**
* Get all classnames of the registered system saimods
*
* @return array Returns array with classname of the registered Modules.
*/
public static function getSysModules(){
return self::$modules_sys;}
/**
* Get all classnames of all the registered saimods
@ -98,5 +77,5 @@ class sai {
* @return array Returns array with classname of all the registered Modules.
*/
public static function getAllModules(){
return array_merge(self::$modules_sys,self::$modules,array(self::$module_start));}
return array_merge(self::$modules,array(self::$module_start));}
}

View File

@ -0,0 +1,37 @@
<?php
namespace SYSTEM\SAI;
class sai_module_menu {
const POISITION_LEFT = 0;
const POISITION_RIGHT = 1;
const DIVIDER_NONE = 0;
const DIVIDER_LEFT = 1;
const DIVIDER_RIGHT = 2;
var $order = null;
var $position = null;
var $divider = null;
var $html = null;
public function __construct($order,$position,$divider,$html) {
$this->order = $order;
$this->position = $position;
$this->divider = $divider;
$this->html = $html;
}
private static function divider(){
return '<li class="divider-vertical"></li>'.
'<li class="dropdown-divider"></li>';
}
public function html(){
$result = '';
if($this->divider == self::DIVIDER_LEFT){
$result .= self::divider();}
$result .= $this->html;
if($this->divider == self::DIVIDER_RIGHT){
$result .= self::divider();}
return $result;
}
}