pagination data

if query is empty get all uids
v1.18.x
barisusakli 10 years ago
parent e8167a80a0
commit 201c4b35da

@ -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, []);

Loading…
Cancel
Save