diff --git a/db/result/ResultMysqliPrepare.php b/db/result/ResultMysqliPrepare.php index 7d5dcd4..9ee20f6 100644 --- a/db/result/ResultMysqliPrepare.php +++ b/db/result/ResultMysqliPrepare.php @@ -27,6 +27,7 @@ class ResultMysqliPrepare extends \SYSTEM\DB\Result{ \mysqli_free_result($this->meta); call_user_func_array(array($this->res, 'bind_result'), $this->binds); //you need 2 append the parameters - thats the right way to do that. + $this->res->store_result(); } public function __destruct() { diff --git a/dbd/sql/mysql/data/system_page.sql b/dbd/sql/mysql/data/system_page.sql index 8ddc4ba..2b1c377 100644 --- a/dbd/sql/mysql/data/system_page.sql +++ b/dbd/sql/mysql/data/system_page.sql @@ -49,8 +49,8 @@ INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (116, 42, 'editor', 'text', 115, 0, 1, '#tab_editor', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_text&action=editor&id=${id}&lang=${lang}', 'init_saimod_sys_text_editor', '\\SYSTEM\\SAI\\saimod_sys_text'); INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (120, 42, 'todo', 'todo', -1, 0, 0, '#content', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_todo', 'init_saimod_sys_todo', '\\SYSTEM\\SAI\\saimod_sys_todo'); -INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (121, 42, 'todolist', 'todo', 120, 0, 0, '#tab_todo', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=todolist&filter=${filter}&search=${search}', 'init_saimod_sys_todo_todo', '\\SYSTEM\\SAI\\saimod_sys_todo'); -INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (122, 42, 'doto', 'todo', 120, 0, 1, '#tab_todo', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=dotolist&filter=${filter}&search=${search}', 'init_saimod_sys_todo_doto', '\\SYSTEM\\SAI\\saimod_sys_todo'); +INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (121, 42, 'todolist', 'todo', 120, 0, 0, '#tab_todo', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=todolist&filter=${filter}&search=${search}&page=${page}', 'init_saimod_sys_todo_todo', '\\SYSTEM\\SAI\\saimod_sys_todo'); +INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (122, 42, 'doto', 'todo', 120, 0, 1, '#tab_todo', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=dotolist&filter=${filter}&search=${search}&page=${page}', 'init_saimod_sys_todo_doto', '\\SYSTEM\\SAI\\saimod_sys_todo'); INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (123, 42, 'stats', 'todo', 120, 0, 1, '#tab_todo', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=stats', 'init_saimod_sys_todo_stats', '\\SYSTEM\\SAI\\saimod_sys_todo'); INSERT INTO `system_page` (`id`, `group`, `name`, `state`, `parent_id`, `login`, `type`, `div`, `url`, `func`, `php_class`) VALUES (124, 42, 'todoopen', 'todo', 120, 0, 1, '#tab_todo', './sai.php?sai_mod=.SYSTEM.SAI.saimod_sys_todo&action=todo&todo=${todo}', 'init_saimod_sys_todo_todoopen', '\\SYSTEM\\SAI\\saimod_sys_todo'); diff --git a/dbd/sql/mysql/data/system_sai_api.sql b/dbd/sql/mysql/data/system_sai_api.sql index 2da61e4..92686e6 100644 --- a/dbd/sql/mysql/data/system_sai_api.sql +++ b/dbd/sql/mysql/data/system_sai_api.sql @@ -146,8 +146,10 @@ INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `nam INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1016, 42, 2, 1000, 'priority_down', 'todo', 'INT'); INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1020, 42, 3, 1000, 'todolist', 'filter', 'STRING'); INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1021, 42, 3, 1000, 'todolist', 'search', 'STRING'); +INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1022, 42, 3, 1000, 'todolist', 'page', 'UINT0'); INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1025, 42, 3, 1000, 'dotolist', 'filter', 'STRING'); INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1026, 42, 3, 1000, 'dotolist', 'search', 'STRING'); +INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1027, 42, 3, 1000, 'dotolist', 'page', 'UINT0'); INSERT INTO `system_api` (`ID`, `group`, `type`, `parentID`, `parentValue`, `name`, `verify`) VALUES (1100, 42, 0, 0, '_SYSTEM_SAI_saimod_sys_docu', 'action', NULL); diff --git a/sai/modules/saimod_sys_todo/js/saimod_sys_todo.js b/sai/modules/saimod_sys_todo/js/saimod_sys_todo.js index 33d6472..9e82f7b 100644 --- a/sai/modules/saimod_sys_todo/js/saimod_sys_todo.js +++ b/sai/modules/saimod_sys_todo/js/saimod_sys_todo.js @@ -22,7 +22,7 @@ function init_saimod_sys_todo() { function register_search(){ $('#btn_search').click(function(){ - system.load($(this).attr('state')+$('#input_search').val(),true); + system.load($(this).attr('state')+$('#input_search').val()+$(this).attr('state2'),true); }); } diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php index e883d42..11a655a 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST.php @@ -21,7 +21,6 @@ class SYS_SAIMOD_TODO_LIST extends \SYSTEM\DB\QP { ' WHERE todo.'.\SYSTEM\DBD\system_todo::FIELD_STATE.' = ?'. ' AND (todo.'.\SYSTEM\DBD\system_todo::FIELD_MESSAGE.' LIKE ? OR creator.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ? OR assignee.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ?)'. ' ORDER BY case when assign.'.\SYSTEM\DBD\system_todo_assign::FIELD_USER.' = ? then 1 else 2 end'. - ' LIMIT 100'. ') as a'. ' GROUP BY a.todo_id'. ' ORDER BY a.'.\SYSTEM\DBD\system_todo::FIELD_PRIORITY.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TYPE.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC' diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_FREE.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_FREE.php index 389b42b..885a8bc 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_FREE.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_FREE.php @@ -21,7 +21,6 @@ class SYS_SAIMOD_TODO_LIST_FREE extends \SYSTEM\DB\QP { ' WHERE todo.'.\SYSTEM\DBD\system_todo::FIELD_STATE.' = ?'. ' AND assign.'.\SYSTEM\DBD\system_todo_assign::FIELD_USER.' IS NULL'. ' AND (todo.'.\SYSTEM\DBD\system_todo::FIELD_MESSAGE.' LIKE ? OR creator.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ? OR assignee.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ?)'. - ' LIMIT 100'. ') as a'. ' GROUP BY a.todo_id'. ' ORDER BY a.'.\SYSTEM\DBD\system_todo::FIELD_PRIORITY.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TYPE.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC' diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_MINE.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_MINE.php index b7cdc35..b7500a7 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_MINE.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_MINE.php @@ -21,7 +21,6 @@ class SYS_SAIMOD_TODO_LIST_MINE extends \SYSTEM\DB\QP { ' WHERE todo.'.\SYSTEM\DBD\system_todo::FIELD_STATE.' = ?'. ' AND assign.'.\SYSTEM\DBD\system_todo_assign::FIELD_USER.' = ?'. ' AND (todo.'.\SYSTEM\DBD\system_todo::FIELD_MESSAGE.' LIKE ? OR creator.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ? OR assignee.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ?)'. - ' LIMIT 100'. ') as a'. ' GROUP BY a.todo_id'. ' ORDER BY a.'.\SYSTEM\DBD\system_todo::FIELD_PRIORITY.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TYPE.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC' diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_OTHERS.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_OTHERS.php index 7dfc9d6..8a8edff 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_OTHERS.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_OTHERS.php @@ -21,7 +21,6 @@ class SYS_SAIMOD_TODO_LIST_OTHERS extends \SYSTEM\DB\QP { ' WHERE todo.'.\SYSTEM\DBD\system_todo::FIELD_STATE.' = ?'. ' AND NOT assign.'.\SYSTEM\DBD\system_todo_assign::FIELD_USER.' = ?'. ' AND (todo.'.\SYSTEM\DBD\system_todo::FIELD_MESSAGE.' LIKE ? OR creator.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ? OR assignee.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ?)'. - ' LIMIT 100'. ') as a'. ' GROUP BY a.todo_id'. ' ORDER BY a.'.\SYSTEM\DBD\system_todo::FIELD_PRIORITY.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TYPE.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC' diff --git a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_TYPE.php b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_TYPE.php index c25de15..eff9771 100644 --- a/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_TYPE.php +++ b/sai/modules/saimod_sys_todo/qq/SYS_SAIMOD_TODO_LIST_TYPE.php @@ -22,7 +22,6 @@ class SYS_SAIMOD_TODO_LIST_TYPE extends \SYSTEM\DB\QP { ' AND todo.'.\SYSTEM\DBD\system_todo::FIELD_TYPE.' = ?'. ' AND (todo.'.\SYSTEM\DBD\system_todo::FIELD_MESSAGE.' LIKE ? OR creator.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ? OR assignee.'.\SYSTEM\DBD\system_user::FIELD_USERNAME.' LIKE ?)'. ' ORDER BY case when assign.'.\SYSTEM\DBD\system_todo_assign::FIELD_USER.' = ? then 1 else 2 end'. - ' LIMIT 100'. ') as a'. ' GROUP BY a.todo_id'. ' ORDER BY a.'.\SYSTEM\DBD\system_todo::FIELD_PRIORITY.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TYPE.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_COUNT.' DESC, a.'.\SYSTEM\DBD\system_todo::FIELD_TIME.' DESC' diff --git a/sai/modules/saimod_sys_todo/saimod_sys_todo.php b/sai/modules/saimod_sys_todo/saimod_sys_todo.php index 6324bf1..bf47def 100644 --- a/sai/modules/saimod_sys_todo/saimod_sys_todo.php +++ b/sai/modules/saimod_sys_todo/saimod_sys_todo.php @@ -49,17 +49,18 @@ class saimod_sys_todo extends \SYSTEM\SAI\SaiModule { return \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/saimod_sys_todo_new.tpl'), $vars); } - public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_todolist($filter='all',$search=''){ - return self::generate_list(\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN,$filter,$search);} + public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_todolist($filter='all',$search='%',$page=0){ + return self::generate_list(\SYSTEM\DBD\system_todo::FIELD_STATE_OPEN,$filter,$search,$page);} - public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_dotolist($filter='all',$search=''){ - return self::generate_list(\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED,$filter,$search);} + public static function sai_mod__SYSTEM_SAI_saimod_sys_todo_action_dotolist($filter='all',$search='%',$page=0){ + return self::generate_list(\SYSTEM\DBD\system_todo::FIELD_STATE_CLOSED,$filter,$search,$page);} - private static function generate_list($state,$filter,$search){ + private static function generate_list($state,$filter,$search,$page){ $vars = array(); $vars['filter'] = $filter; $vars['search'] = $search; - $search = '%'.$search.'%'; + $vars['page'] = $page; + $search = $search; $vars['todo_list_elements'] = $vars['filter_mine'] = $vars['filter_free'] = $vars['filter_others'] = $vars['filter_gen'] = $vars['filter_user'] = $vars['filter_report'] = ''; @@ -102,7 +103,8 @@ class saimod_sys_todo extends \SYSTEM\SAI\SaiModule { break; } $count_filtered = 0; - while($row = $res->next()){ + $res->seek(100*$page); + while(($row = $res->next()) && ($count_filtered < 100)){ $row['class_row'] = self::trclass($row['type'],$row['class'],$row['assignee_id'],$userid); $row['time_elapsed'] = \SYSTEM\time::time_ago_string(strtotime($row['time'])); $row['state_string'] = self::state($row['count']); @@ -114,6 +116,11 @@ class saimod_sys_todo extends \SYSTEM\SAI\SaiModule { $vars['todo_list_elements'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_user_list_element.tpl'), $row); $count_filtered++; } + $vars['pagination'] = ''; + for($i=0;$i < ceil($count/100);$i++){ + $data = array('page' => $i,'search' => $search, 'filter' => $filter, 'active' => ($i == $page) ? 'active' : ''); + $vars['pagination'] .= \SYSTEM\PAGE\replace::replaceFile(\SYSTEM\SERVERPATH(new \SYSTEM\PSAI(),'modules/saimod_sys_todo/tpl/todo_list_pagination.tpl'), $data); + } $vars['count'] = $count_filtered.'/'.$count; $vars['state'] = $state == \SYSTEM\DBD\system_todo::FIELD_STATE_OPEN ? 'todo' : 'todo(doto)'; $vars = array_merge($vars, \SYSTEM\PAGE\text::tag(\SYSTEM\DBD\system_text::TAG_SAI_TODO)); diff --git a/sai/modules/saimod_sys_todo/tpl/todo_list.tpl b/sai/modules/saimod_sys_todo/tpl/todo_list.tpl index 471a30f..aa87af9 100644 --- a/sai/modules/saimod_sys_todo/tpl/todo_list.tpl +++ b/sai/modules/saimod_sys_todo/tpl/todo_list.tpl @@ -1,17 +1,17 @@
Rows: ${count} -
User ToDo's
+
ToDo's
@@ -21,4 +21,7 @@ ${todo_list_elements}
${time_ago}
+
\ No newline at end of file diff --git a/sai/modules/saimod_sys_todo/tpl/todo_list_pagination.tpl b/sai/modules/saimod_sys_todo/tpl/todo_list_pagination.tpl new file mode 100644 index 0000000..9748ade --- /dev/null +++ b/sai/modules/saimod_sys_todo/tpl/todo_list_pagination.tpl @@ -0,0 +1 @@ +
  • ${page}
  • \ No newline at end of file