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);