sai todolist beta
This commit is contained in:
parent
7d34c86b26
commit
e64d2f1278
@ -125,7 +125,10 @@ INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `nam
|
||||
-- INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (900, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_cache', 'action', NULL);
|
||||
|
||||
|
||||
-- INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1000, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_todo', 'action', NULL);
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1000, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_todo', 'action', NULL);
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1001, 42, 2, 1000, 'todo', 'todo', 'INT');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1002, 42, 2, 1000, 'open', 'todo', 'INT');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1003, 42, 2, 1000, 'close', 'todo', 'INT');
|
||||
|
||||
|
||||
-- INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1100, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_docu', 'action', NULL);
|
||||
|
||||
@ -18,7 +18,8 @@ CREATE TABLE `system_todo` (
|
||||
`user` INT(10) UNSIGNED NOT NULL,
|
||||
`thrown` BIT(1) NOT NULL,
|
||||
`type` INT(11) NOT NULL DEFAULT '0',
|
||||
`count` INT(11) NOT NULL DEFAULT '0',
|
||||
`count` INT(11) NOT NULL DEFAULT '1',
|
||||
`state` INT(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`ID`)
|
||||
)
|
||||
COLLATE='utf8_general_ci'
|
||||
|
||||
@ -109,7 +109,17 @@ INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, ve
|
||||
-- INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (900, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_cache', 'action', NULL);
|
||||
|
||||
|
||||
-- INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (1000, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_todo', 'action', NULL);
|
||||
INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (1000, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_todo', 'action', NULL);
|
||||
|
||||
|
||||
-- INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (1100, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_docu', 'action', NULL);
|
||||
-- INSERT INTO system.api ("ID", "group", type, "parentID", "parentValue", name, verify) VALUES (1100, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_docu', 'action', NULL);
|
||||
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1200, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_cron', 'action', NULL);
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1201, 42, 2, 1200, 'add', 'cls', 'STRING');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1202, 42, 2, 1200, 'add', 'min', 'INT');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1203, 42, 2, 1200, 'add', 'hour', 'INT');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1204, 42, 2, 1200, 'add', 'day', 'INT');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1205, 42, 2, 1200, 'add', 'day_week', 'INT');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1206, 42, 2, 1200, 'add', 'month', 'INT');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1208, 42, 2, 1200, 'del', 'cls', 'STRING');
|
||||
INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1209, 42, 2, 1200, 'deldialog', 'cls', 'STRING');
|
||||
@ -19,7 +19,8 @@ CREATE TABLE system.todo
|
||||
"user" integer,
|
||||
thrown integer,
|
||||
"type" integer NOT NULL DEFAULT 0,
|
||||
"count" integer NOT NULL DEFAULT 0,
|
||||
"count" integer NOT NULL DEFAULT 1,
|
||||
"state" integer NOT NULL DEFAULT 0,
|
||||
CONSTRAINT system_todo_pk_id PRIMARY KEY ("ID"),
|
||||
CONSTRAINT system_todo_fk_user FOREIGN KEY ("user")
|
||||
REFERENCES system."user" (id) MATCH SIMPLE
|
||||
|
||||
34
dbd/tbl/system_todo.php
Normal file
34
dbd/tbl/system_todo.php
Normal file
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class system_todo {
|
||||
const NAME_PG = 'system.todo';
|
||||
const NAME_MYS = 'system_todo';
|
||||
|
||||
const FIELD_ID = 'ID';
|
||||
const FIELD_CLASS = 'class';
|
||||
const FIELD_MESSAGE = 'message';
|
||||
const FIELD_CODE = 'code';
|
||||
const FIELD_FILE = 'file';
|
||||
const FIELD_LINE = 'line';
|
||||
const FIELD_TRACE = 'trace';
|
||||
const FIELD_IP = 'ip';
|
||||
const FIELD_QUERYTIME = 'querytime';
|
||||
const FIELD_TIME = 'time';
|
||||
const FIELD_SERVER_NAME = 'server_name';
|
||||
const FIELD_SERVER_PORT = 'server_port';
|
||||
const FIELD_REQUEST_URI = 'request_uri';
|
||||
const FIELD_POST = 'post';
|
||||
const FIELD_HTTP_REFERER = 'http_referer';
|
||||
const FIELD_HTTP_USER_AGENT = 'http_user_agent';
|
||||
const FIELD_USER = 'user';
|
||||
const FIELD_THROWN = 'thrown';
|
||||
|
||||
const FIELD_COUNT = 'count';
|
||||
const FIELD_TYPE = 'type';
|
||||
const FIELD_TYPE_EXCEPTION = 0;
|
||||
const FIELD_TYPE_USER = 1;
|
||||
const FIELD_STATE = 'state';
|
||||
const FIELD_STATE_OPEN = 0;
|
||||
const FIELD_STATE_CLOSED = 1;
|
||||
}
|
||||
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
namespace SYSTEM\LOG;
|
||||
|
||||
class COUNTER extends \SYSTEM\LOG\INFO{}
|
||||
class COUNTER extends \SYSTEM\LOG\INFO {}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
namespace SYSTEM\LOG;
|
||||
|
||||
class DEPRECATED extends \SYSTEM\LOG\SYSTEM_EXCEPTION {}
|
||||
class DEPRECATED extends \SYSTEM\LOG\TODO {}
|
||||
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
namespace SYSTEM\LOG;
|
||||
|
||||
class ERROR extends \SYSTEM\LOG\SYSTEM_EXCEPTION {}
|
||||
class ERROR extends \SYSTEM\LOG\TODO {}
|
||||
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
namespace SYSTEM\LOG;
|
||||
|
||||
class ERROR_EXCEPTION extends \SYSTEM\LOG\SYSTEM_ERROR_EXCEPTION{}
|
||||
class ERROR_EXCEPTION extends \SYSTEM\LOG\SYSTEM_ERROR_EXCEPTION {}
|
||||
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
namespace SYSTEM\LOG;
|
||||
|
||||
class SHUTDOWN_EXCEPTION extends \SYSTEM\LOG\SYSTEM_ERROR_EXCEPTION{}
|
||||
class SHUTDOWN_EXCEPTION extends \SYSTEM\LOG\SYSTEM_ERROR_EXCEPTION {}
|
||||
@ -3,6 +3,7 @@ namespace SYSTEM\LOG;
|
||||
|
||||
class SYSTEM_EXCEPTION extends \Exception {
|
||||
public $logged = false;
|
||||
public $todo_logged = false;
|
||||
public function __construct($message = "", $code = 1, $previous = NULL){
|
||||
parent::__construct($message, $code, $previous);
|
||||
\SYSTEM\LOG\log::__exception_handler($this,false);
|
||||
|
||||
8
log/exceptions/TODO.php
Normal file
8
log/exceptions/TODO.php
Normal file
@ -0,0 +1,8 @@
|
||||
<?php
|
||||
namespace SYSTEM\LOG;
|
||||
|
||||
class TODO extends \SYSTEM\LOG\SYSTEM_EXCEPTION {
|
||||
public function __construct($message = "", $code = 1, $previous = NULL){
|
||||
parent::__construct($message, $code, $previous);
|
||||
\SYSTEM\SAI\saimod_sys_todo::exception($this,false);}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
<?php
|
||||
namespace SYSTEM\LOG;
|
||||
|
||||
class WARNING extends \SYSTEM\LOG\SYSTEM_EXCEPTION {}
|
||||
class WARNING extends \SYSTEM\LOG\TODO {}
|
||||
2
log/exceptions_shortcut/TODO.php
Normal file
2
log/exceptions_shortcut/TODO.php
Normal file
@ -0,0 +1,2 @@
|
||||
<?php
|
||||
class TODO extends \SYSTEM\LOG\TODO {}
|
||||
14
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_CLOSE.php
Normal file
14
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_CLOSE.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_CLOSE extends \SYSTEM\DB\QP {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'UPDATE '.\SYSTEM\DBD\system_todo::NAME_PG.' SET '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_ID.'= $1;',
|
||||
//mys
|
||||
'UPDATE '.\SYSTEM\DBD\system_todo::NAME_MYS.' SET '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_ID.'= ?;'
|
||||
);}}
|
||||
|
||||
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_DOTO_COUNT extends \SYSTEM\DB\QQ {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\system_todo::NAME_PG.' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED.';',
|
||||
//mys
|
||||
'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\system_todo::NAME_MYS.' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED.';'
|
||||
);}}
|
||||
17
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_DOTO_LIST.php
Normal file
17
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_DOTO_LIST.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_DOTO_LIST extends \SYSTEM\DB\QQ {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'SELECT * FROM '.\SYSTEM\DBD\system_todo::NAME_PG.
|
||||
' LEFT JOIN '.\SYSTEM\DBD\system_user::NAME_PG.' ON '.\SYSTEM\DBD\system_todo::FIELD_USER.'='.\SYSTEM\DBD\system_user::NAME_PG.'.'.\SYSTEM\DBD\system_user::FIELD_ID.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED.
|
||||
' ORDER BY '.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, '.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC LIMIT 100;',
|
||||
//mys
|
||||
'SELECT * FROM '.\SYSTEM\DBD\system_todo::NAME_MYS.
|
||||
' LEFT JOIN '.\SYSTEM\DBD\system_user::NAME_MYS.' ON '.\SYSTEM\DBD\system_todo::FIELD_USER.'='.\SYSTEM\DBD\system_user::NAME_MYS.'.'.\SYSTEM\DBD\system_user::FIELD_ID.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED.
|
||||
' ORDER BY '.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, '.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC LIMIT 100;'
|
||||
);}}
|
||||
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_EXCEPTION_INSERT extends \SYSTEM\DB\QP {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'INSERT INTO '.\SYSTEM\DBD\system_todo::NAME_PG.
|
||||
'("'.\SYSTEM\DBD\system_todo::FIELD_CLASS.'","'.\SYSTEM\DBD\system_todo::FIELD_MESSAGE.'","'.
|
||||
\SYSTEM\DBD\system_todo::FIELD_CODE.'","'.\SYSTEM\DBD\system_todo::FIELD_FILE.'","'.
|
||||
\SYSTEM\DBD\system_todo::FIELD_LINE.'","'.\SYSTEM\DBD\system_todo::FIELD_TRACE.'","'.
|
||||
\SYSTEM\DBD\system_todo::FIELD_IP.'","'.\SYSTEM\DBD\system_todo::FIELD_QUERYTIME.'","'.
|
||||
\SYSTEM\DBD\system_todo::FIELD_SERVER_NAME.'","'.\SYSTEM\DBD\system_todo::FIELD_SERVER_PORT.'","'.
|
||||
\SYSTEM\DBD\system_todo::FIELD_REQUEST_URI.'","'.\SYSTEM\DBD\system_todo::FIELD_POST.'","'.
|
||||
\SYSTEM\DBD\system_todo::FIELD_HTTP_REFERER.'","'.\SYSTEM\DBD\system_todo::FIELD_HTTP_USER_AGENT.'","'.
|
||||
\SYSTEM\DBD\system_todo::FIELD_USER.'","'.\SYSTEM\DBD\system_todo::FIELD_THROWN.'")'.
|
||||
'VALUES($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16)'.
|
||||
'ON DUPLICATE KEY UPDATE '.\SYSTEM\DBD\system_todo::FIELD_COUNT.'='.\SYSTEM\DBD\system_todo::FIELD_COUNT.'+1, '.\SYSTEM\DBD\system_todo::FIELD_TIME.'=VALUES('.\SYSTEM\DBD\system_todo::FIELD_TIME.'), '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.';',
|
||||
//mys
|
||||
'INSERT INTO '.\SYSTEM\DBD\system_todo::NAME_MYS.
|
||||
'('.\SYSTEM\DBD\system_todo::FIELD_CLASS.','.\SYSTEM\DBD\system_todo::FIELD_MESSAGE.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_CODE.','.\SYSTEM\DBD\system_todo::FIELD_FILE.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_LINE.','.\SYSTEM\DBD\system_todo::FIELD_TRACE.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_IP.','.\SYSTEM\DBD\system_todo::FIELD_QUERYTIME.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_TIME.','.\SYSTEM\DBD\system_todo::FIELD_SERVER_NAME.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_SERVER_PORT.','.\SYSTEM\DBD\system_todo::FIELD_REQUEST_URI.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_POST.','.\SYSTEM\DBD\system_todo::FIELD_HTTP_REFERER.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_HTTP_USER_AGENT.','.\SYSTEM\DBD\system_todo::FIELD_USER.','.
|
||||
\SYSTEM\DBD\system_todo::FIELD_THROWN.')'.
|
||||
'VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)'.
|
||||
'ON DUPLICATE KEY UPDATE '.\SYSTEM\DBD\system_todo::FIELD_COUNT.'='.\SYSTEM\DBD\system_todo::FIELD_COUNT.'+1, '.\SYSTEM\DBD\system_todo::FIELD_TIME.'=VALUES('.\SYSTEM\DBD\system_todo::FIELD_TIME.'), '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.';'
|
||||
);}}
|
||||
@ -1,11 +0,0 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_LIST extends \SYSTEM\DB\QQ {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'SELECT * FROM system.todo LEFT JOIN system.user ON system.todo.user = system.user.ID ORDER BY count, time DESC LIMIT 100;',
|
||||
//mys
|
||||
'SELECT * FROM system_todo LEFT JOIN system_user ON system_todo.user = system_user.ID ORDER BY count, time DESC LIMIT 100;'
|
||||
);}}
|
||||
14
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_OPEN.php
Normal file
14
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_OPEN.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_OPEN extends \SYSTEM\DB\QP {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'UPDATE '.\SYSTEM\DBD\system_todo::NAME_PG.' SET '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_ID.'= $1;',
|
||||
//mys
|
||||
'UPDATE '.\SYSTEM\DBD\system_todo::NAME_MYS.' SET '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_ID.'= ?;'
|
||||
);}}
|
||||
|
||||
20
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO.php
Normal file
20
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_TODO extends \SYSTEM\DB\QP {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'SELECT * FROM '.\SYSTEM\DBD\system_todo::NAME_PG.
|
||||
' LEFT JOIN '.\SYSTEM\DBD\system_user::NAME_PG.
|
||||
' ON '.\SYSTEM\DBD\system_todo::NAME_PG.'.'.\SYSTEM\DBD\system_todo::FIELD_USER.
|
||||
' = '.\SYSTEM\DBD\system_user::NAME_PG.'.'.\SYSTEM\DBD\system_user::FIELD_ID.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::NAME_PG.'."'.\SYSTEM\DBD\system_todo::FIELD_ID.'" = $1;',
|
||||
//mys
|
||||
'SELECT * FROM '.\SYSTEM\DBD\system_todo::NAME_MYS.
|
||||
' LEFT JOIN '.\SYSTEM\DBD\system_user::NAME_MYS.
|
||||
' ON '.\SYSTEM\DBD\system_todo::NAME_MYS.'.'.\SYSTEM\DBD\system_todo::FIELD_USER.
|
||||
' = '.\SYSTEM\DBD\system_user::NAME_MYS.'.'.\SYSTEM\DBD\system_user::FIELD_ID.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::NAME_MYS.'.'.\SYSTEM\DBD\system_todo::FIELD_ID.' = ?;'
|
||||
);}}
|
||||
|
||||
@ -0,0 +1,11 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_TODO_COUNT extends \SYSTEM\DB\QQ {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\system_todo::NAME_PG.' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.';',
|
||||
//mys
|
||||
'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\system_todo::NAME_MYS.' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.';'
|
||||
);}}
|
||||
17
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO_LIST.php
Normal file
17
sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_TODO_LIST.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
namespace SYSTEM\DBD;
|
||||
|
||||
class SYS_SAIMOD_TODO_TODO_LIST extends \SYSTEM\DB\QQ {
|
||||
protected static function query(){
|
||||
return new \SYSTEM\DB\QQuery(get_class(),
|
||||
//pg
|
||||
'SELECT * FROM '.\SYSTEM\DBD\system_todo::NAME_PG.
|
||||
' LEFT JOIN '.\SYSTEM\DBD\system_user::NAME_PG.' ON '.\SYSTEM\DBD\system_todo::FIELD_USER.'='.\SYSTEM\DBD\system_user::NAME_PG.'.'.\SYSTEM\DBD\system_user::FIELD_ID.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.
|
||||
' ORDER BY '.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, '.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC LIMIT 100;',
|
||||
//mys
|
||||
'SELECT * FROM '.\SYSTEM\DBD\system_todo::NAME_MYS.
|
||||
' LEFT JOIN '.\SYSTEM\DBD\system_user::NAME_MYS.' ON '.\SYSTEM\DBD\system_todo::FIELD_USER.'='.\SYSTEM\DBD\system_user::NAME_MYS.'.'.\SYSTEM\DBD\system_user::FIELD_ID.
|
||||
' WHERE '.\SYSTEM\DBD\system_todo::FIELD_STATE.'='.\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN.
|
||||
' ORDER BY '.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, '.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC LIMIT 100;'
|
||||
);}}
|
||||
87
sai/modules/saimod_sys_todo/saimod_sys_todo.js
Normal file
87
sai/modules/saimod_sys_todo/saimod_sys_todo.js
Normal file
@ -0,0 +1,87 @@
|
||||
function init__SYSTEM_SAI_saimod_sys_todo() {
|
||||
$('#tabs_todo a').click(function (e) {
|
||||
e.preventDefault();
|
||||
$(this).tab('show');
|
||||
load_todo_tab($(this).attr('action'));
|
||||
});
|
||||
|
||||
load_todo_tab('todolist');
|
||||
};
|
||||
|
||||
function load_todo_tab(action){
|
||||
$('#img_loader').show();
|
||||
switch(action){
|
||||
case 'todolist':
|
||||
$('#tab_todo').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_todo&action='+action, function(){
|
||||
register_todolist();
|
||||
register_listclick(true);
|
||||
$('#img_loader').hide();});
|
||||
return;
|
||||
case 'dotolist':
|
||||
$('#tab_todo').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_todo&action='+action, function(){
|
||||
register_doto(false);
|
||||
register_listclick();
|
||||
$('#img_loader').hide();});
|
||||
return;
|
||||
case 'stats':
|
||||
$('#tab_todo').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_todo&action='+action, function(){
|
||||
register_stats();
|
||||
$('#img_loader').hide();});
|
||||
return;
|
||||
default:
|
||||
$('#img_loader').hide();
|
||||
}
|
||||
}
|
||||
|
||||
function register_listclick(todo){
|
||||
$('.sai_todo_element').click(function(){
|
||||
$('#img_loader').show();
|
||||
$('#tab_todo').load(SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=todo&todo='+$(this).attr('todo'), function(){
|
||||
$('#btn_back').click(function(){
|
||||
if(todo){load_todo_tab('todolist');}else{load_todo_tab('dotolist');}});
|
||||
if(todo){register_close();}else{register_open();}
|
||||
$('#img_loader').hide();})});
|
||||
}
|
||||
|
||||
function register_open(){
|
||||
$('#btn_open').show();
|
||||
$('#btn_open').click(function(){
|
||||
$.ajax({ type : 'GET',
|
||||
url : SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=open&todo='+$(this).attr('todo'),
|
||||
success : function(data) {
|
||||
if(data.status){
|
||||
$('#btn_open').hide();
|
||||
register_close();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function register_close(){
|
||||
$('#btn_close').show();
|
||||
$('#btn_close').click(function(){
|
||||
$.ajax({ type : 'GET',
|
||||
url : SAI_ENDPOINT+'sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=close&todo='+$(this).attr('todo'),
|
||||
success : function(data) {
|
||||
if(data.status){
|
||||
$('#btn_close').hide();
|
||||
register_open();
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function register_todolist(){
|
||||
$('#btn_refresh').click(function(){
|
||||
load_todo_tab('todolist');});
|
||||
}
|
||||
function register_doto(){
|
||||
$('#btn_refresh').click(function(){
|
||||
load_todo_tab('dotolist');});
|
||||
}
|
||||
function register_stats(){
|
||||
$('#btn_refresh').click(function(){
|
||||
load_todo_tab('stats');});
|
||||
}
|
||||
@ -1,20 +1,55 @@
|
||||
<?php
|
||||
namespace SYSTEM\SAI;
|
||||
|
||||
class saimod_sys_todo extends \SYSTEM\SAI\SaiModule {
|
||||
class saimod_sys_todo extends \SYSTEM\SAI\SaiModule {
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_close($todo){
|
||||
\SYSTEM\DBD\SYS_SAIMOD_TODO_CLOSE::QI(array($todo));
|
||||
return \SYSTEM\LOG\JsonResult::ok();}
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_open($todo){
|
||||
\SYSTEM\DBD\SYS_SAIMOD_TODO_OPEN::QI(array($todo));
|
||||
return \SYSTEM\LOG\JsonResult::ok();}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo(){
|
||||
$vars = array();
|
||||
$vars['PICPATH'] = \SYSTEM\WEBPATH(new \SYSTEM\PSAI(), 'modules/saimod_sys_log/img/');
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/saimod_sys_todo.tpl'), $vars);
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_todolist(){
|
||||
$result = '';
|
||||
$res = \SYSTEM\DBD\SYS_SAIMOD_TODO_LIST::QQ();
|
||||
$res = \SYSTEM\DBD\SYS_SAIMOD_TODO_TODO_LIST::QQ();
|
||||
$count = \SYSTEM\DBD\SYS_SAIMOD_TODO_TODO_COUNT::Q1()['count'];
|
||||
while($row = $res->next()){
|
||||
$row['class_by_type'] = self::trclassbytype($row['type']);
|
||||
$row['time_elapsed'] = self::time_elapsed_string(strtotime($row['time']));
|
||||
$row['report_type'] = self::reporttype($row['type']);
|
||||
$row['state_string'] = self::state($row['state']);
|
||||
$row['state_btn'] = self::statebtn($row['state']);
|
||||
$row['state_string'] = self::state($row['count']);
|
||||
$row['state_btn'] = self::statebtn($row['count']);
|
||||
$result .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_list_element.tpl'), $row);
|
||||
}
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_list.tpl'), array('todo_list_elements' => $result));
|
||||
}
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_list.tpl'), array('todo_list_elements' => $result, 'count' => $count));
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_dotolist(){
|
||||
$result = '';
|
||||
$res = \SYSTEM\DBD\SYS_SAIMOD_TODO_DOTO_LIST::QQ();
|
||||
$count = \SYSTEM\DBD\SYS_SAIMOD_TODO_DOTO_COUNT::Q1()['count'];
|
||||
while($row = $res->next()){
|
||||
$row['class_by_type'] = self::trclassbytype($row['type']);
|
||||
$row['time_elapsed'] = self::time_elapsed_string(strtotime($row['time']));
|
||||
$row['report_type'] = self::reporttype($row['type']);
|
||||
$row['state_string'] = self::state($row['count']);
|
||||
$row['state_btn'] = self::statebtn($row['count']);
|
||||
$result .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_list_element.tpl'), $row);
|
||||
}
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_list.tpl'), array('todo_list_elements' => $result, 'count' => $count));
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_stats(){
|
||||
$todo = new \SYSTEM\LOG\TODO('Do ToDo Stats');
|
||||
return 'Todo: Do ToDo Stats';
|
||||
}
|
||||
|
||||
private static function time_elapsed_string($ptime)
|
||||
{
|
||||
@ -73,10 +108,40 @@ class saimod_sys_todo extends \SYSTEM\SAI\SaiModule {
|
||||
}
|
||||
}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_todo($todo){
|
||||
$vars = \SYSTEM\DBD\SYS_SAIMOD_TODO_TODO::QQ(array($todo))->next();
|
||||
$vars['trace'] = implode('</br>', array_slice(explode('#', $vars['trace']), 1, -1));
|
||||
return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/saimod_sys_todo_todo.tpl'), $vars);}
|
||||
|
||||
public static function html_li_menu(){return '<li><a href="#" saimenu=".SYSTEM.SAI.saimod_sys_todo">ToDo</a></li>';}
|
||||
public static function right_public(){return false;}
|
||||
public static function right_right(){return \SYSTEM\SECURITY\Security::check(\SYSTEM\SECURITY\RIGHTS::SYS_SAI);}
|
||||
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_flag_css(){}
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_flag_js(){}
|
||||
public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_flag_js(){return \SYSTEM\LOG\JsonResult::toString(
|
||||
array(\SYSTEM\WEBPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/saimod_sys_todo.js')));}
|
||||
|
||||
public static function exception(\Exception $E, $thrown){
|
||||
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\DBD\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),
|
||||
$_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),
|
||||
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));
|
||||
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!
|
||||
}
|
||||
}
|
||||
15
sai/modules/saimod_sys_todo/tpl/saimod_sys_todo.tpl
Normal file
15
sai/modules/saimod_sys_todo/tpl/saimod_sys_todo.tpl
Normal file
@ -0,0 +1,15 @@
|
||||
<h4>System ToDo</h4>
|
||||
<hr>
|
||||
<div class="tabbable">
|
||||
<ul class="nav nav-tabs" id="tabs_todo">
|
||||
<li class="active"><a href="#tab_todo" action="todolist">ToDo</a></li>
|
||||
<li><a href="#tab_todo" action="dotolist">DoTo</a></li>
|
||||
<li><a href="#tab_todo" action="stats">Statistics</a></li>
|
||||
<img id="img_loader" src="${PICPATH}ajax-loader.gif" style="margin-left: 10px; margin-top: 10px; display: none; float: left"/>
|
||||
<button id="btn_refresh" class="btn-primary" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Refresh</button>
|
||||
<button id="btn_add" class="btn-success" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Add</button>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<div class="tab-pane active" id="tab_todo"></div>
|
||||
</div>
|
||||
</div>
|
||||
26
sai/modules/saimod_sys_todo/tpl/saimod_sys_todo_todo.tpl
Normal file
26
sai/modules/saimod_sys_todo/tpl/saimod_sys_todo_todo.tpl
Normal file
@ -0,0 +1,26 @@
|
||||
<h3>ToDo ${ID}</h3>
|
||||
<table class="table table-hover table-condensed">
|
||||
<tr><th>Property</th><th>Value</th></tr>
|
||||
<tr><td>ID</td><td>${ID}</td></tr>
|
||||
<tr><td>class</td><td>${class}</td></tr>
|
||||
<tr><td>code</td><td>${code}</td></tr>
|
||||
<tr><td>file</td><td>${file}</td></tr>
|
||||
<tr><td>line</td><td>${line}</td></tr>
|
||||
<tr><td>trace</td><td>${trace}</td></tr>
|
||||
<tr><td>ip</td><td>${ip}</td></tr>
|
||||
<tr><td>querytime</td><td>${querytime}</td></tr>
|
||||
<tr><td>time</td><td>${time}</td></tr>
|
||||
<tr><td>server_name</td><td>${server_name}</td></tr>
|
||||
<tr><td>server_port</td><td>${server_port}</td></tr>
|
||||
<tr><td>request_uri</td><td>${request_uri}</td></tr>
|
||||
<tr><td>url</td><td><a href="${server_name}:${server_port}${request_uri}">${server_name}:${server_port}${request_uri}</a></td></tr>
|
||||
<tr><td>post</td><td>${post}</td></tr>
|
||||
<tr><td>http_referer</td><td>${http_referer}</td></tr>
|
||||
<tr><td>http_user_agent</td><td>${http_user_agent}</td></tr>
|
||||
<tr><td>user</td><td>${username}</td></tr>
|
||||
<tr><td>thrown</td><td>${thrown}</td></tr>
|
||||
<tr><td>message</td><td>${message}</td></tr>
|
||||
</table>
|
||||
<button id="btn_close" class="btn-danger" style="display: none; margin-right: 15px; height: 32px; font-size: 13px; float: right;" todo="${ID}">Close</button>
|
||||
<button id="btn_open" class="btn-danger" style="display: none; margin-right: 15px; height: 32px; font-size: 13px; float: right;" todo="${ID}">Open</button>
|
||||
<button id="btn_back" class="btn-success" style="margin-right: 15px; height: 32px; font-size: 13px; float: right;">Back</button>
|
||||
@ -1,16 +1,17 @@
|
||||
<h4>ToDo</h4>
|
||||
<hr>
|
||||
<div id="table-wrapper">
|
||||
<table class="table table-hover table-condensed sai_table" style="overflow: auto;">
|
||||
Rows: ${count}
|
||||
<table class="table table-hover table-condensed">
|
||||
<tr>
|
||||
<th>Time ago</th>
|
||||
<th>Time</th>
|
||||
<th>Reporttype</th>
|
||||
<th>Message</th>
|
||||
<th>Author</th>
|
||||
<th>Volunteers</th>
|
||||
<th>State</th>
|
||||
<th>Action</th>
|
||||
<th>time ago</th>
|
||||
<th>class</th>
|
||||
<th>message</th>
|
||||
<th>file</th>
|
||||
<th>line</th>
|
||||
<th>ip</th>
|
||||
<th>url</th>
|
||||
<th>user</th>
|
||||
<th>querytime</th>
|
||||
<th>count</th>
|
||||
</tr>
|
||||
${todo_list_elements}
|
||||
</table>
|
||||
|
||||
@ -1,15 +1,12 @@
|
||||
<tr class="${class_by_type}">
|
||||
<td>${time_elapsed}</td>
|
||||
<td>${time}</td>
|
||||
<td>${report_type}</td>
|
||||
<td>${message}</td>
|
||||
<td>${username}</td>'.
|
||||
<td>Assigned pplz</td>'.
|
||||
<td>${state_string}</td>'.
|
||||
<td>
|
||||
${state_btn}
|
||||
<input type="submit" class="btn" value="edit">'.
|
||||
<input type="submit" class="btn" value="assign">'.
|
||||
<input type="submit" class="btn-danger" value="delete">
|
||||
</td>
|
||||
<tr class="sai_todo_element ${class_row}" todo="${ID}">
|
||||
<td>${time_elapsed}</td>
|
||||
<td>${class}</td>
|
||||
<td style="word-break: break-all;">${message}</td>
|
||||
<td style="word-break: break-all;">${file}</td>
|
||||
<td>${line}</td>
|
||||
<td>${ip}</td>
|
||||
<td style="word-break: break-all;">${server_name}:${server_port}${request_uri}</td>
|
||||
<td>${username}</td>
|
||||
<td>${querytime}</td>
|
||||
<td>${count}</td>
|
||||
</tr>
|
||||
Loading…
x
Reference in New Issue
Block a user