diff --git a/js/saimod_mail.js b/js/saimod_mail.js index 1a07927..e778e50 100644 --- a/js/saimod_mail.js +++ b/js/saimod_mail.js @@ -1,5 +1,11 @@ function init_saimod_mail() {} +function register_search(){ + $('#btn_search').click(function(){ + system.load($(this).attr('state')+$('#input_search').val()+$(this).attr('state2'),true); + }); +} + function init_saimod_mail_overview() { $('#tabs_mail li a').each(function(){ $(this).removeClass('active');}); @@ -133,6 +139,7 @@ function init_saimod_mail_contacts() { }); } }); + register_search(); } function init_saimod_mail_contact() { diff --git a/saimod_mail.php b/saimod_mail.php index 0944436..93865bc 100644 --- a/saimod_mail.php +++ b/saimod_mail.php @@ -378,27 +378,44 @@ class saimod_mail extends \SYSTEM\SAI\sai_module{ return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_mail/tpl/saimod_mail_overview.tpl'))->SERVERPATH(),$vars); } - public static function sai_mod__SAI_saimod_mail_action_contacts($list=null){ + public static function sai_mod__SAI_saimod_mail_action_contacts($search='%',$page=0,$list=null){ $vars = array(); + $vars['list'] = $list; + $vars['search'] = $search; + $vars['page'] = $page; //menu $vars['menu'] = ''; $vars['active_all'] = $list ? '' : 'active'; $res = \SQL\EMAIL_LISTS_SELECT::QQ(); while($row = $res->next()){ $row['active'] = $row['id'] == $list ? 'active' : ''; + $row['search'] = $search; $vars['menu'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_mail/tpl/saimod_mail_contacts_menu.tpl'))->SERVERPATH(),$row); } //data $vars['data'] = ''; if($list){ - $res = \SQL\CONTACTS_SELECT_LIST::QQ(array($list)); + $res = \SQL\CONTACTS_SELECT_LIST::QQ(array($list,$search,$search,$search,$search)); + $count = \SQL\CONTACTS_COUNT_LIST::Q1(array($list,$search,$search,$search,$search))['count']; } else { - $res = \SQL\CONTACTS_SELECT::QQ(); + $res = \SQL\CONTACTS_SELECT::QQ(array($search,$search,$search,$search)); + $count = \SQL\CONTACTS_COUNT::Q1(array($search,$search,$search,$search))['count']; } - while($row = $res->next()){ + $res->seek(25*$page); + $count_filtered = 0; + while(($row = $res->next()) && ($count_filtered < 25)){ $vars['data'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_mail/tpl/saimod_mail_contacts_tr.tpl'))->SERVERPATH(),$row); + $count_filtered++; } + // Pagintation + $vars['pagination'] = ''; + $vars['page_last'] = floor($count/25); + for($i=0;$i < ceil($count/25);$i++){ + $data = array('page' => $i,'search' => $search, 'list' => $list, 'active' => ($i == $page) ? 'active' : ''); + $vars['pagination'] .= \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_mail/tpl/saimod_mail_contacts_pagination.tpl'))->SERVERPATH(), $data); + } + $vars['count'] = ($count_filtered+$page*25).'/'.$count; return \SYSTEM\PAGE\replace::replaceFile((new \PSAI('saimod_mail/tpl/saimod_mail_contacts.tpl'))->SERVERPATH(),$vars); } diff --git a/sql/CONTACTS_COUNT.php b/sql/CONTACTS_COUNT.php new file mode 100644 index 0000000..5587f09 --- /dev/null +++ b/sql/CONTACTS_COUNT.php @@ -0,0 +1,14 @@ + + + + + + + + + + + + Rows: ${count} Page: ${page} + + ${data} + \ No newline at end of file diff --git a/tpl/saimod_mail_contacts_menu.tpl b/tpl/saimod_mail_contacts_menu.tpl index ac0b23c..833f655 100644 --- a/tpl/saimod_mail_contacts_menu.tpl +++ b/tpl/saimod_mail_contacts_menu.tpl @@ -1,3 +1,3 @@ \ No newline at end of file diff --git a/tpl/saimod_mail_contacts_pagination.tpl b/tpl/saimod_mail_contacts_pagination.tpl new file mode 100644 index 0000000..37b9861 --- /dev/null +++ b/tpl/saimod_mail_contacts_pagination.tpl @@ -0,0 +1 @@ +
  • ${page}
  • \ No newline at end of file