From c4d63db65c8e10d91fc4d1f4158d5e79bdd54ca0 Mon Sep 17 00:00:00 2001 From: Robert Lyon Date: Fri, 13 Nov 2015 11:56:51 +1300 Subject: [PATCH] Bug 1515484: Fix the online users pagination to use json This is 2 of 6 patches to standardize pagination behatnotneeded Change-Id: I7741ae0d436d7e11fe248307936757d3d8027cc1 Signed-off-by: Robert Lyon --- htdocs/js/paginator.js | 6 ++-- htdocs/lib/user.php | 3 ++ htdocs/theme/raw/templates/user/online.tpl | 5 ++++ htdocs/user/online.json.php | 34 ++++++++++++++++++++++ htdocs/user/online.php | 10 +++++-- 5 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 htdocs/user/online.json.php diff --git a/htdocs/js/paginator.js b/htdocs/js/paginator.js index 61c1bc2fa7..b3f7e18828 100644 --- a/htdocs/js/paginator.js +++ b/htdocs/js/paginator.js @@ -121,10 +121,10 @@ var Paginator = function(id, list, heading, script, extradata) { if ((queryData.offset % setlimitselect.value) !== 0) { queryData.offset = Math.floor(queryData.offset / setlimitselect.value) * setlimitselect.value; } - queryData.setlimit = "1"; - queryData.limit = setlimitselect.value; - queryData.extradata = serializeJSON(self.extraData); } + queryData.setlimit = "1"; + queryData.limit = setlimitselect.value; + queryData.extradata = serializeJSON(self.extraData); self.sendQuery(queryData); }); diff --git a/htdocs/lib/user.php b/htdocs/lib/user.php index 338087575a..512f1a496c 100644 --- a/htdocs/lib/user.php +++ b/htdocs/lib/user.php @@ -2023,6 +2023,9 @@ function build_onlinelist_html(&$data, $page) { 'count' => $data['count'], 'limit' => $data['limit'], 'offset' => $data['offset'], + 'datatable' => 'onlinelist', + 'jsonscript' => 'user/online.json.php', + 'setlimit' => true, 'resultcounttextsingular' => $resultcounttextsingular, 'resultcounttextplural' => $resultcounttextplural, 'extradata' => array('page' => $page), diff --git a/htdocs/theme/raw/templates/user/online.tpl b/htdocs/theme/raw/templates/user/online.tpl index 3f29ce08ba..d4fdb99722 100644 --- a/htdocs/theme/raw/templates/user/online.tpl +++ b/htdocs/theme/raw/templates/user/online.tpl @@ -6,4 +6,9 @@ {$data.pagination|safe} +{if $data.pagination_js} + +{/if} {include file="footer.tpl"} diff --git a/htdocs/user/online.json.php b/htdocs/user/online.json.php new file mode 100644 index 0000000000..33aa09648a --- /dev/null +++ b/htdocs/user/online.json.php @@ -0,0 +1,34 @@ + null, + 'data' => array( + 'tablerows' => $data['tablerows'], + 'pagination' => $data['pagination'], + 'pagination_js' => $data['pagination_js'], + 'count' => $data['count'], + 'results' => $data['count'] . ' ' . ($data['count'] == 1 ? get_string('result') : get_string('results')), + 'offset' => $offset, + 'setlimit' => $setlimit, + ) +)); \ No newline at end of file diff --git a/htdocs/user/online.php b/htdocs/user/online.php index d6ee66980f..c8cd82dd48 100644 --- a/htdocs/user/online.php +++ b/htdocs/user/online.php @@ -17,8 +17,14 @@ define('SECTION_PLUGINNAME', 'user'); define('SECTION_PAGE', 'onlineusers'); $offset = param_integer('offset', 0); -$limit = 10; - +$limit = param_integer('limit', 10); +$userlimit = get_account_preference($USER->get('id'), 'viewsperpage'); +if ($limit > 0 && $limit != $userlimit) { + $USER->set_account_preference('viewsperpage', $limit); +} +else { + $limit = $userlimit; +} $data = get_onlineusers($limit, $offset); build_onlinelist_html($data, 'online'); -- GitLab