mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-03 12:36:02 +01:00
closes #3738
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
/* globals define, socket, app, ajaxify, templates */
|
/* globals define, socket, app, templates, bootbox */
|
||||||
|
|
||||||
define('forum/users', ['translator'], function(translator) {
|
define('forum/users', ['translator'], function(translator) {
|
||||||
var Users = {};
|
var Users = {};
|
||||||
@@ -104,15 +104,12 @@ define('forum/users', ['translator'], function(translator) {
|
|||||||
|
|
||||||
function doSearch(page) {
|
function doSearch(page) {
|
||||||
var username = $('#search-user').val();
|
var username = $('#search-user').val();
|
||||||
var notify = $('#user-notfound-notify');
|
|
||||||
page = page || 1;
|
page = page || 1;
|
||||||
|
|
||||||
if (!username) {
|
if (!username) {
|
||||||
return loadPage(page);
|
return loadPage(page);
|
||||||
}
|
}
|
||||||
|
|
||||||
notify.html('<i class="fa fa-spinner fa-spin"></i>');
|
|
||||||
|
|
||||||
socket.emit('user.search', {
|
socket.emit('user.search', {
|
||||||
query: username,
|
query: username,
|
||||||
page: page,
|
page: page,
|
||||||
@@ -121,28 +118,15 @@ define('forum/users', ['translator'], function(translator) {
|
|||||||
onlineOnly: $('.search .online-only').is(':checked')
|
onlineOnly: $('.search .online-only').is(':checked')
|
||||||
}, function(err, data) {
|
}, function(err, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
resetSearchNotify();
|
|
||||||
return app.alertError(err.message);
|
return app.alertError(err.message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!data) {
|
|
||||||
return resetSearchNotify();
|
|
||||||
}
|
|
||||||
|
|
||||||
renderSearchResults(data);
|
renderSearchResults(data);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetSearchNotify() {
|
|
||||||
var notify = $('#user-notfound-notify');
|
|
||||||
notify.html('<i class="fa fa-search"></i>');
|
|
||||||
notify.parent().removeClass('btn-warning label-warning btn-success label-success');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function loadPage(page) {
|
function loadPage(page) {
|
||||||
socket.emit('user.loadSearchPage', {page: page, onlineOnly: $('.search .online-only').is(':checked')}, function(err, data) {
|
socket.emit('user.loadSearchPage', {page: page, onlineOnly: $('.search .online-only').is(':checked')}, function(err, data) {
|
||||||
resetSearchNotify();
|
|
||||||
if (err) {
|
if (err) {
|
||||||
return app.alertError(err.message);
|
return app.alertError(err.message);
|
||||||
}
|
}
|
||||||
@@ -152,7 +136,7 @@ define('forum/users', ['translator'], function(translator) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function renderSearchResults(data) {
|
function renderSearchResults(data) {
|
||||||
var notify = $('#user-notfound-notify');
|
$('#load-more-users-btn').addClass('hide');
|
||||||
templates.parse('partials/paginator', {pagination: data.pagination}, function(html) {
|
templates.parse('partials/paginator', {pagination: data.pagination}, function(html) {
|
||||||
$('.pagination-container').replaceWith(html);
|
$('.pagination-container').replaceWith(html);
|
||||||
});
|
});
|
||||||
@@ -160,20 +144,9 @@ define('forum/users', ['translator'], function(translator) {
|
|||||||
templates.parse('users', 'users', data, function(html) {
|
templates.parse('users', 'users', data, function(html) {
|
||||||
translator.translate(html, function(translated) {
|
translator.translate(html, function(translated) {
|
||||||
$('#users-container').html(translated);
|
$('#users-container').html(translated);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
if (!data.users.length) {
|
|
||||||
translator.translate('[[error:no-user]]', function(translated) {
|
|
||||||
notify.html(translated);
|
|
||||||
notify.parent().removeClass('btn-success label-success').addClass('btn-warning label-warning');
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
translator.translate('[[users:users-found-search-took, ' + data.matchCount + ', ' + data.timing + ']]', function(translated) {
|
|
||||||
notify.html(translated);
|
|
||||||
notify.parent().removeClass('btn-warning label-warning').addClass('btn-success label-success');
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function onUserStatusChange(data) {
|
function onUserStatusChange(data) {
|
||||||
|
|||||||
@@ -41,7 +41,6 @@ usersController.getOnlineUsers = function(req, res, next) {
|
|||||||
|
|
||||||
var userData = {
|
var userData = {
|
||||||
'route_users:online': true,
|
'route_users:online': true,
|
||||||
search_display: 'hidden',
|
|
||||||
loadmore_display: results.count > 50 ? 'block' : 'hide',
|
loadmore_display: results.count > 50 ? 'block' : 'hide',
|
||||||
users: results.users,
|
users: results.users,
|
||||||
anonymousUserCount: websockets.getOnlineAnonCount(),
|
anonymousUserCount: websockets.getOnlineAnonCount(),
|
||||||
@@ -94,7 +93,6 @@ usersController.getUsers = function(set, start, stop, req, res, next) {
|
|||||||
|
|
||||||
var pageCount = Math.ceil(data.count / (parseInt(meta.config.userSearchResultsPerPage, 10) || 20));
|
var pageCount = Math.ceil(data.count / (parseInt(meta.config.userSearchResultsPerPage, 10) || 20));
|
||||||
var userData = {
|
var userData = {
|
||||||
search_display: 'hidden',
|
|
||||||
loadmore_display: data.count > (stop - start + 1) ? 'block' : 'hide',
|
loadmore_display: data.count > (stop - start + 1) ? 'block' : 'hide',
|
||||||
users: data.users,
|
users: data.users,
|
||||||
pagination: pagination.create(1, pageCount),
|
pagination: pagination.create(1, pageCount),
|
||||||
@@ -126,29 +124,6 @@ usersController.getUsersAndCount = function(set, uid, start, stop, callback) {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
usersController.getUsersForSearch = function(req, res, next) {
|
|
||||||
if (!req.uid && parseInt(meta.config.allowGuestUserSearching, 10) !== 1) {
|
|
||||||
return helpers.notAllowed(req, res);
|
|
||||||
}
|
|
||||||
var resultsPerPage = parseInt(meta.config.userSearchResultsPerPage, 10) || 20;
|
|
||||||
|
|
||||||
usersController.getUsersAndCount('users:joindate', req.uid, 0, resultsPerPage - 1, function(err, data) {
|
|
||||||
if (err) {
|
|
||||||
return next(err);
|
|
||||||
}
|
|
||||||
|
|
||||||
var userData = {
|
|
||||||
search_display: 'block',
|
|
||||||
loadmore_display: 'hidden',
|
|
||||||
users: data.users,
|
|
||||||
title: '[[pages:users/search]]',
|
|
||||||
breadcrumbs: helpers.buildBreadcrumbs([{text: '[[global:users]]', url: '/users'}, {text: '[[global:search]]'}])
|
|
||||||
};
|
|
||||||
|
|
||||||
render(req, res, userData, next);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
function render(req, res, data, next) {
|
function render(req, res, data, next) {
|
||||||
plugins.fireHook('filter:users.build', { req: req, res: res, templateData: data }, function(err, data) {
|
plugins.fireHook('filter:users.build', { req: req, res: res, templateData: data }, function(err, data) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
@@ -62,8 +62,7 @@ function userRoutes(app, middleware, controllers) {
|
|||||||
setupPageRoute(app, '/users/online', middleware, middlewares, controllers.users.getOnlineUsers);
|
setupPageRoute(app, '/users/online', middleware, middlewares, controllers.users.getOnlineUsers);
|
||||||
setupPageRoute(app, '/users/sort-posts', middleware, middlewares, controllers.users.getUsersSortedByPosts);
|
setupPageRoute(app, '/users/sort-posts', middleware, middlewares, controllers.users.getUsersSortedByPosts);
|
||||||
setupPageRoute(app, '/users/sort-reputation', middleware, middlewares, controllers.users.getUsersSortedByReputation);
|
setupPageRoute(app, '/users/sort-reputation', middleware, middlewares, controllers.users.getUsersSortedByReputation);
|
||||||
setupPageRoute(app, '/users/search', middleware, middlewares, controllers.users.getUsersForSearch);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function groupRoutes(app, middleware, controllers) {
|
function groupRoutes(app, middleware, controllers) {
|
||||||
|
|||||||
Reference in New Issue
Block a user