diff --git a/public/language/en-GB/admin/manage/users.json b/public/language/en-GB/admin/manage/users.json index 05fc3f043f..01088037f2 100644 --- a/public/language/en-GB/admin/manage/users.json +++ b/public/language/en-GB/admin/manage/users.json @@ -28,6 +28,11 @@ "pills.banned": "Banned", "pills.search": "User Search", + "50-per-page": "50 per page", + "100-per-page": "100 per page", + "250-per-page": "250 per page", + "500-per-page": "500 per page", + "search.uid": "By User ID", "search.uid-placeholder": "Enter a user ID to search", "search.username": "By User Name", diff --git a/public/src/admin/manage/users.js b/public/src/admin/manage/users.js index 73e33b391b..ef85db041d 100644 --- a/public/src/admin/manage/users.js +++ b/public/src/admin/manage/users.js @@ -12,6 +12,12 @@ define('admin/manage/users', ['translator', 'benchpress'], function (translator, } navPills.removeClass('active').find('a[href="' + pathname + '"]').parent().addClass('active'); + $('#results-per-page').val(ajaxify.data.resultsPerPage).on('change', function () { + var query = utils.params(); + query.resultsPerPage = $('#results-per-page').val(); + ajaxify.go(window.location.pathname + '?' + $.param(query)); + }); + function getSelectedUids() { var uids = []; diff --git a/src/controllers/admin/users.js b/src/controllers/admin/users.js index 743834e1d7..cb4f2b7420 100644 --- a/src/controllers/admin/users.js +++ b/src/controllers/admin/users.js @@ -120,7 +120,10 @@ usersController.registrationQueue = function (req, res, next) { function getUsers(set, section, min, max, req, res, next) { var page = parseInt(req.query.page, 10) || 1; - var resultsPerPage = 50; + var resultsPerPage = parseInt(req.query.resultsPerPage, 10) || 50; + if (![50, 100, 250, 500].includes(resultsPerPage)) { + resultsPerPage = 50; + } var start = Math.max(0, page - 1) * resultsPerPage; var stop = start + resultsPerPage - 1; var byScore = min !== undefined && max !== undefined; @@ -161,6 +164,7 @@ function getUsers(set, section, min, max, req, res, next) { users: results.users, page: page, pageCount: Math.max(1, Math.ceil(results.count / resultsPerPage)), + resultsPerPage: resultsPerPage, }; data[section] = true; render(req, res, data); diff --git a/src/views/admin/manage/users.tpl b/src/views/admin/manage/users.tpl index 4b65102352..ef250aa980 100644 --- a/src/views/admin/manage/users.tpl +++ b/src/views/admin/manage/users.tpl @@ -33,17 +33,28 @@
+