change user.search to accept params
can search substr with startsWith:false
no infinite scroll on admin user search page
v1.18.x
barisusakli 10 years ago
parent fbd875b397
commit 6d31fee3f5

@ -267,14 +267,21 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable)
handleUserCreate();
function onUsersLoaded(users) {
templates.parse('admin/manage/users', 'users', {users: users, requireEmailConfirmation: config.requireEmailConfirmation}, function(html) {
$('#users-container').append($(html));
selectable.enable('#users-container', '.user-selectable');
});
}
$('#load-more-users-btn').on('click', loadMoreUsers);
$(window).off('scroll').on('scroll', function() {
var bottom = ($(document).height() - $(window).height()) * 0.9;
if ($(window).scrollTop() > bottom && !loadingMoreUsers) {
loadMoreUsers();
}
});
function loadMoreUsers() {
if (active === 'search') {
return;
}
var set = 'users:joindate';
if (active === 'sort-posts') {
set = 'users:postcount';
@ -284,7 +291,6 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable)
set = 'users:banned';
}
loadingMoreUsers = true;
socket.emit('user.loadMore', {
set: set,
@ -297,15 +303,12 @@ define('admin/manage/users', ['admin/modules/selectable'], function(selectable)
});
}
$('#load-more-users-btn').on('click', loadMoreUsers);
$(window).off('scroll').on('scroll', function() {
var bottom = ($(document).height() - $(window).height()) * 0.9;
if ($(window).scrollTop() > bottom && !loadingMoreUsers) {
loadMoreUsers();
}
});
function onUsersLoaded(users) {
templates.parse('admin/manage/users', 'users', {users: users, requireEmailConfirmation: config.requireEmailConfirmation}, function(html) {
$('#users-container').append($(html));
selectable.enable('#users-container', '.user-selectable');
});
}
};

@ -9,7 +9,7 @@ var usersController = {};
usersController.search = function(req, res, next) {
res.render('admin/manage/users', {
search_display: '',
loadmore_display: 'none',
loadmore_display: 'hide',
users: []
});
};
@ -52,6 +52,9 @@ function getUsers(set, req, res, next) {
usersController.getCSV = function(req, res, next) {
user.getUsersCSV(function(err, data) {
if (err) {
return next(err);
}
res.attachment('users.csv');
res.setHeader('Content-Type', 'text/csv');
res.end(data);

@ -36,7 +36,7 @@ Categories.search = function(socket, data, callback) {
var username = data.username,
cid = data.cid;
user.search(username, 'username', function(err, data) {
user.search({query: username}, function(err, data) {
if (err) {
return callback(err);
}

@ -175,7 +175,7 @@ User.deleteUsers = function(socket, uids, callback) {
};
User.search = function(socket, data, callback) {
user.search(data.query, data.type, function(err, searchData) {
user.search({query: data.query, by: data.type, startsWith: false}, function(err, searchData) {
if (err) {
return callback(err);
}

@ -66,7 +66,7 @@ SocketUser.search = function(socket, username, callback) {
if (!socket.uid) {
return callback(new Error('[[error:not-logged-in]]'));
}
user.search(username, 'username', callback);
user.search({query: username}, callback);
};
// Password Reset

@ -6,18 +6,22 @@ var async = require('async'),
module.exports = function(User) {
User.search = function(query, type, callback) {
User.search = function(data, callback) {
var query = data.query;
var by = data.by || 'username';
var startsWith = data.hasOwnProperty('startsWith') ? data.startsWith : true;
if (!query || query.length === 0) {
return callback(null, {timing:0, users:[]});
}
if (type === 'ip') {
if (by === 'ip') {
return searchByIP(query, callback);
}
var start = process.hrtime();
var key = 'username:uid';
if (type === 'email') {
if (by === 'email') {
key = 'email:uid';
}
@ -32,7 +36,11 @@ module.exports = function(User) {
var uids = [];
for(var i=0; i<values.length; ++i) {
if (values[i].toLowerCase().indexOf(query) === 0) {
if (startsWith) {
if (values[i].toLowerCase().indexOf(query) === 0) {
uids.push(values[i]);
}
} else if (values[i].toLowerCase().indexOf(query) !== -1) {
uids.push(values[i]);
}
}

Loading…
Cancel
Save