diff --git a/include/ajax.config.php b/include/ajax.config.php index 733fa014d2c18af5e09d92c5b3ba497561f1b8ca..093914a6d5791640b02310bd7ee38e0f7f34c6f2 100644 --- a/include/ajax.config.php +++ b/include/ajax.config.php @@ -20,7 +20,7 @@ class ConfigAjaxAPI extends AjaxController { //config info UI might need. function scp() { - global $cfg; + global $cfg, $thisstaff; $lang = Internationalization::getCurrentLanguage(); list($sl, $locale) = explode('_', $lang); @@ -38,6 +38,7 @@ class ConfigAjaxAPI extends AjaxController { 'lang' => $lang, 'short_lang' => $sl, 'has_rtl' => $rtl, + 'page_size' => $thisstaff->getPageLimit(), ); return $this->json_encode($config); } diff --git a/include/class.nav.php b/include/class.nav.php index 1c721b8542cf6571ca58a789f152bab8506c3ac2..2b54c32d6c59cfc958ac60dda7f4f4ce1f4a54ff 100644 --- a/include/class.nav.php +++ b/include/class.nav.php @@ -113,7 +113,7 @@ class StaffNav { function getTabs(){ if(!$this->tabs) { $this->tabs=array(); - $this->tabs['dashboard'] = array('desc'=>__('Dashboard'),'href'=>'dashboard.php','title'=>__('Agent Dashboard')); + $this->tabs['dashboard'] = array('desc'=>__('Dashboard'),'href'=>'dashboard.php','title'=>__('Agent Dashboard'), "class"=>"no-pjax"); $this->tabs['users'] = array('desc' => __('Users'), 'href' => 'users.php', 'title' => __('User Directory')); $this->tabs['tickets'] = array('desc'=>__('Tickets'),'href'=>'tickets.php','title'=>__('Ticket Queue')); $this->tabs['kbase'] = array('desc'=>__('Knowledgebase'),'href'=>'kb.php','title'=>__('Knowledgebase')); diff --git a/include/staff/templates/navigation.tmpl.php b/include/staff/templates/navigation.tmpl.php index b28ec05261c0c2d669763b66f79258de7bfd01c3..8f0444999c7d0c169acbc599dfbfa69285a2462d 100644 --- a/include/staff/templates/navigation.tmpl.php +++ b/include/staff/templates/navigation.tmpl.php @@ -1,7 +1,10 @@ <?php if(($tabs=$nav->getTabs()) && is_array($tabs)){ foreach($tabs as $name =>$tab) { - echo sprintf('<li class="%s"><a href="%s">%s</a>',$tab['active']?'active':'inactive',$tab['href'],$tab['desc']); + echo sprintf('<li class="%s %s"><a href="%s">%s</a>', + $tab['active'] ? 'active':'inactive', + @$tab['class'] ?: '', + $tab['href'],$tab['desc']); if(!$tab['active'] && ($subnav=$nav->getSubMenu($name))){ echo "<ul>\n"; foreach($subnav as $k => $item) { diff --git a/scp/js/dashboard.inc.js b/scp/js/dashboard.inc.js index c902e4be2d77352909602d2d72b31758909136a8..683135e62c05b10975e6b79c897f0d33dc5557ec 100644 --- a/scp/js/dashboard.inc.js +++ b/scp/js/dashboard.inc.js @@ -1,5 +1,5 @@ (function ($) { - var current_tab; + var current_tab = null; function refresh(e) { $('#line-chart-here').empty(); $('#line-chart-legend').empty(); @@ -135,7 +135,12 @@ stop = this.period.value || 'now'; } + if (!current_tab) + current_tab = $('#tabular-navigation li:first-child a'); + var group = current_tab.attr('table-group'); + var pagesize = 25; + getConfig().then(function(c) { if (c.page_size) pagesize = c.page_size; }); $.ajax({ method: 'GET', dataType: 'json', @@ -144,7 +149,6 @@ success: function(json) { var q = $('<table>').attr({'class':'table table-condensed table-striped'}), h = $('<tr>').appendTo($('<thead>').appendTo(q)), - pagesize = 25, max = []; for (var c in json.columns) { h.append($('<th>').append(json.columns[c])); @@ -158,7 +162,7 @@ } for (var i in json.data) { if (i % pagesize === 0) - b = $('<tbody>').attr({'page':i/pagesize+1}).appendTo(q); + b = $('<tbody>').attr({'page':i/pagesize+1}).addClass('hidden').appendTo(q); row = json.data[i]; tr = $('<tr>').appendTo(b); for (var j in row) { @@ -194,30 +198,31 @@ $('<td>').attr('colspan','8').append( 'No data for this timeframe found'))).appendTo(q); } + $('tbody[page=1]', q).removeClass('hidden'); $('#table-here').empty().append(q); // ----------------------> Pagination <--------------------- function goabs(e) { - $('tbody', q).addClass('hide'); + $('tbody', q).addClass('hidden'); if (e.target) { page = e.target.text; - $('tbody[page='+page+']', q).removeClass('hide'); + $('tbody[page='+page+']', q).removeClass('hidden'); } else { - e.removeClass('hide'); + e.removeClass('hidden'); page = e.attr('page') } - enable_next_prev(page); + return enable_next_prev(page); } function goprev() { - current = $('tbody:not(.hide)', q).attr('page'); + current = $('tbody:not(.hidden)', q).attr('page'); page = Math.max(1, parseInt(current) - 1); - goabs($('tbody[page='+page+']', q)); + return goabs($('tbody[page='+page+']', q)); } function gonext() { - current = $('tbody:not(.hide)', q).attr('page'); + current = $('tbody:not(.hidden)', q).attr('page'); page = Math.min(Math.floor(json.data.length / pagesize) + 1, parseInt(current) + 1); - goabs($('tbody[page='+page+']', q)); + return goabs($('tbody[page='+page+']', q)); } function enable_next_prev(page) { $('#table-here div.pagination li[page]').removeClass('active'); @@ -229,6 +234,7 @@ if (page == Math.floor(json.data.length / pagesize) + 1) $('#report-page-next').addClass('disabled'); else $('#report-page-next').removeClass('disabled'); + return false; } var p = $('<ul>') @@ -254,15 +260,16 @@ .appendTo($('<li>') .appendTo(p)); - gonext(); + goprev(); } }); return false; } - - $(function() { - $('#timeframe-form').submit(refresh); + + $(function() { + var form = $('#timeframe-form'); + form.submit(refresh); //Trigger submit now...init. - $('#timeframe-form').submit(); - }); + form.submit(); + }); })(window.jQuery);