fix acp users page

v1.18.x
barisusakli
parent f53d783d3d
commit 1202322700

@ -195,105 +195,103 @@ define('forum/admin/users', function() {
}); });
} }
$('document').ready(function() { var timeoutId = 0,
loadingMoreUsers = false;
var timeoutId = 0,
loadingMoreUsers = false; var url = window.location.href,
parts = url.split('/'),
var url = window.location.href, active = parts[parts.length - 1];
parts = url.split('/'),
active = parts[parts.length - 1]; $('.nav-pills li').removeClass('active');
$('.nav-pills li a').each(function() {
var $this = $(this);
if ($this.attr('href').match(active)) {
$this.parent().addClass('active');
return false;
}
});
$('.nav-pills li').removeClass('active'); $('#search-user').on('keyup', function() {
$('.nav-pills li a').each(function() { if (timeoutId !== 0) {
var $this = $(this); clearTimeout(timeoutId);
if ($this.attr('href').match(active)) { timeoutId = 0;
$this.parent().addClass('active'); }
return false;
}
});
$('#search-user').on('keyup', function() { timeoutId = setTimeout(function() {
if (timeoutId !== 0) { var username = $('#search-user').val();
clearTimeout(timeoutId);
timeoutId = 0;
}
timeoutId = setTimeout(function() { $('.fa-spinner').removeClass('hidden');
var username = $('#search-user').val();
$('.fa-spinner').removeClass('none'); socket.emit('admin.user.search', username, function(err, data) {
if(err) {
return app.alertError(err.message);
}
socket.emit('admin.user.search', username, function(err, data) { ajaxify.loadTemplate('admin/users', function(adminUsers) {
if(err) { $('.users').html(templates.parse(templates.getBlock(adminUsers, 'users'), data));
return app.alertError(err.message);
$('.fa-spinner').addClass('hidden');
if (data && data.users.length === 0) {
$('#user-notfound-notify').html('User not found!')
.show()
.addClass('label-danger')
.removeClass('label-success');
} else {
$('#user-notfound-notify').html(data.users.length + ' user' + (data.users.length > 1 ? 's' : '') + ' found! Search took ' + data.timing + ' ms.')
.show()
.addClass('label-success')
.removeClass('label-danger');
} }
ajaxify.loadTemplate('admin/users', function(adminUsers) {
$('.users').html(templates.parse(templates.getBlock(adminUsers, 'users'), data));
$('.fa-spinner').addClass('none');
if (data && data.users.length === 0) {
$('#user-notfound-notify').html('User not found!')
.show()
.addClass('label-danger')
.removeClass('label-success');
} else {
$('#user-notfound-notify').html(data.users.length + ' user' + (data.users.length > 1 ? 's' : '') + ' found! Search took ' + data.timing + ' ms.')
.show()
.addClass('label-success')
.removeClass('label-danger');
}
});
}); });
}, 250); });
}, 250);
});
handleUserCreate();
function onUsersLoaded(users) {
ajaxify.loadTemplate('admin/users', function(adminUsers) {
var html = $(templates.parse(templates.getBlock(adminUsers, 'users'), {users: users}));
$('#users-container').append(html);
}); });
}
handleUserCreate(); function loadMoreUsers() {
var set = '';
if (active === 'latest') {
set = 'users:joindate';
} else if (active === 'sort-posts') {
set = 'users:postcount';
} else if (active === 'sort-reputation') {
set = 'users:reputation';
}
function onUsersLoaded(users) { if (set) {
ajaxify.loadTemplate('admin/users', function(adminUsers) { loadingMoreUsers = true;
var html = $(templates.parse(templates.getBlock(adminUsers, 'users'), {users: users})); socket.emit('user.loadMore', {
$('#users-container').append(html); set: set,
after: $('#users-container').children().length
}, function(err, data) {
if (data && data.users.length) {
onUsersLoaded(data.users);
}
loadingMoreUsers = false;
}); });
} }
}
function loadMoreUsers() { $('#load-more-users-btn').on('click', loadMoreUsers);
var set = '';
if (active === 'latest') {
set = 'users:joindate';
} else if (active === 'sort-posts') {
set = 'users:postcount';
} else if (active === 'sort-reputation') {
set = 'users:reputation';
}
if (set) { $(window).off('scroll').on('scroll', function() {
loadingMoreUsers = true; var bottom = ($(document).height() - $(window).height()) * 0.9;
socket.emit('user.loadMore', {
set: set,
after: $('#users-container').children().length
}, function(err, data) {
if (data && data.users.length) {
onUsersLoaded(data.users);
}
loadingMoreUsers = false;
});
}
}
$('#load-more-users-btn').on('click', loadMoreUsers); if ($(window).scrollTop() > bottom && !loadingMoreUsers) {
loadMoreUsers();
$(window).off('scroll').on('scroll', function() { }
var bottom = ($(document).height() - $(window).height()) * 0.9; });
if ($(window).scrollTop() > bottom && !loadingMoreUsers) {
loadMoreUsers();
}
});
});
}; };
return Users; return Users;

@ -7,7 +7,7 @@ var usersController = {};
usersController.search = function(req, res, next) { usersController.search = function(req, res, next) {
res.render('admin/users', { res.render('admin/users', {
search_display: 'block', search_display: '',
loadmore_display: 'none', loadmore_display: 'none',
users: [] users: []
}); });
@ -31,7 +31,7 @@ function getUsers(set, req, res, next) {
return next(err); return next(err);
} }
res.render('admin/users', { res.render('admin/users', {
search_display: 'none', search_display: 'hidden',
loadmore_display: 'block', loadmore_display: 'block',
users: users, users: users,
yourid: req.user.uid yourid: req.user.uid

@ -34,7 +34,7 @@ usersController.getOnlineUsers = function(req, res, next) {
var anonymousUserCount = websockets.getOnlineAnonCount(); var anonymousUserCount = websockets.getOnlineAnonCount();
var userData = { var userData = {
search_display: 'none', search_display: 'hidden',
loadmore_display: results.count > 50 ? 'block' : 'hide', loadmore_display: results.count > 50 ? 'block' : 'hide',
users: results.users, users: results.users,
anonymousUserCount: anonymousUserCount, anonymousUserCount: anonymousUserCount,
@ -74,7 +74,7 @@ function getUsers(set, res, next) {
}); });
var userData = { var userData = {
search_display: 'none', search_display: 'hidden',
loadmore_display: results.count > 50 ? 'block' : 'hide', loadmore_display: results.count > 50 ? 'block' : 'hide',
users: results.users, users: results.users,
show_anon: 'hide' show_anon: 'hide'
@ -87,7 +87,7 @@ function getUsers(set, res, next) {
usersController.getUsersForSearch = function(req, res, next) { usersController.getUsersForSearch = function(req, res, next) {
var data = { var data = {
search_display: 'block', search_display: 'block',
loadmore_display: 'none', loadmore_display: 'hidden',
users: [], users: [],
show_anon: 'hide' show_anon: 'hide'
}; };

@ -29,12 +29,12 @@
<div class="search {search_display} well"> <div class="search {search_display} well">
<input class="form-control" id="search-user" type="text" placeholder="Enter a username to search"/><br /> <input class="form-control" id="search-user" type="text" placeholder="Enter a username to search"/><br />
<i class="fa fa-spinner fa-spin none"></i> <i class="fa fa-spinner fa-spin hidden"></i>
<span id="user-notfound-notify" class="label label-danger hide">User not found!</span><br/> <span id="user-notfound-notify" class="label label-danger hide">User not found!</span><br/>
</div> </div>
<ul id="users-container" class="users admin"> <ul id="users-container" class="users">
<!-- BEGIN users --> <!-- BEGIN users -->
<div class="users-box" data-uid="{users.uid}" data-username="{users.username}"> <div class="users-box" data-uid="{users.uid}" data-username="{users.username}">

Loading…
Cancel
Save