mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-07-09 12:33:04 +02:00
pagination data
if query is empty get all uids
This commit is contained in:
@@ -5,6 +5,7 @@ var usersController = {};
|
||||
var async = require('async'),
|
||||
user = require('../user'),
|
||||
meta = require('../meta'),
|
||||
pagination = require('../pagination'),
|
||||
plugins = require('../plugins'),
|
||||
db = require('../database');
|
||||
|
||||
@@ -67,11 +68,13 @@ usersController.getUsers = function(set, count, req, res, next) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
var pageCount = Math.ceil(data.count / (parseInt(meta.config.userSearchResultsPerPage, 10) || 20));
|
||||
var userData = {
|
||||
search_display: 'hidden',
|
||||
loadmore_display: data.count > count ? 'block' : 'hide',
|
||||
users: data.users,
|
||||
show_anon: 'hide'
|
||||
show_anon: 'hide',
|
||||
pagination: pagination.create(1, pageCount)
|
||||
};
|
||||
|
||||
res.render('users', userData);
|
||||
@@ -94,7 +97,7 @@ function getUsersAndCount(set, uid, count, callback) {
|
||||
return user && parseInt(user.uid, 10);
|
||||
});
|
||||
|
||||
callback(null, {users: results.users, count: results.count});
|
||||
callback(null, results);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -22,19 +22,14 @@ module.exports = function(User) {
|
||||
}
|
||||
|
||||
var startTime = process.hrtime();
|
||||
var keys = searchBy.map(function(searchBy) {
|
||||
return searchBy + ':uid';
|
||||
});
|
||||
|
||||
var filterBy = Array.isArray(data.filterBy) ? data.filterBy : [];
|
||||
|
||||
var searchResult = {};
|
||||
async.waterfall([
|
||||
function(next) {
|
||||
findUids(query, keys, startsWith, next);
|
||||
findUids(query, searchBy, startsWith, next);
|
||||
},
|
||||
function(uids, next) {
|
||||
|
||||
var filterBy = Array.isArray(data.filterBy) ? data.filterBy : [];
|
||||
filterAndSortUids(uids, filterBy, data.sortBy, next);
|
||||
},
|
||||
function(uids, next) {
|
||||
@@ -61,6 +56,7 @@ module.exports = function(User) {
|
||||
var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20;
|
||||
var start = Math.max(0, page - 1) * resultsPerPage;
|
||||
var end = start + resultsPerPage;
|
||||
|
||||
var pageCount = Math.ceil(data.length / resultsPerPage);
|
||||
var currentPage = Math.max(1, Math.ceil((start + 1) / resultsPerPage));
|
||||
|
||||
@@ -70,7 +66,15 @@ module.exports = function(User) {
|
||||
};
|
||||
};
|
||||
|
||||
function findUids(query, keys, startsWith, callback) {
|
||||
function findUids(query, searchBy, startsWith, callback) {
|
||||
if (!query) {
|
||||
return db.getSortedSetRevRange('users:joindate', 0, -1, callback);
|
||||
}
|
||||
|
||||
var keys = searchBy.map(function(searchBy) {
|
||||
return searchBy + ':uid';
|
||||
});
|
||||
|
||||
db.getObjects(keys, function(err, hashes) {
|
||||
if (err || !hashes) {
|
||||
return callback(err, []);
|
||||
|
||||
Reference in New Issue
Block a user