mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 12:05:57 +01:00
closes #3590
This commit is contained in:
@@ -104,5 +104,6 @@
|
||||
"privacy": "Privacy",
|
||||
"follow": "Follow",
|
||||
"unfollow": "Unfollow",
|
||||
"delete_all": "Delete All"
|
||||
"delete_all": "Delete All",
|
||||
"map": "Map"
|
||||
}
|
||||
|
||||
@@ -8,26 +8,8 @@ define('forum/popular', function() {
|
||||
Popular.init = function() {
|
||||
app.enterRoom('popular_topics');
|
||||
|
||||
selectActivePill();
|
||||
$('.nav-pills li').removeClass('active').find('a[href="' + window.location.pathname + '"]').parent().addClass('active');
|
||||
};
|
||||
|
||||
function selectActivePill() {
|
||||
var active = getActiveSection();
|
||||
|
||||
$('.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;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getActiveSection() {
|
||||
var parts = window.location.href.split('/');
|
||||
return parts[parts.length - 1];
|
||||
}
|
||||
|
||||
return Popular;
|
||||
});
|
||||
|
||||
@@ -9,16 +9,8 @@ define('forum/users', ['translator'], function(translator) {
|
||||
|
||||
Users.init = function() {
|
||||
app.enterRoom('user_list');
|
||||
var active = getActiveSection();
|
||||
|
||||
$('.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').find('a[href="' + window.location.pathname + '"]').parent().addClass('active');
|
||||
|
||||
handleSearch();
|
||||
|
||||
@@ -41,14 +33,14 @@ define('forum/users', ['translator'], function(translator) {
|
||||
function loadMoreUsers() {
|
||||
var set = '';
|
||||
var activeSection = getActiveSection();
|
||||
if (activeSection === 'latest') {
|
||||
set = 'users:joindate';
|
||||
} else if (activeSection === 'sort-posts') {
|
||||
if (activeSection === 'sort-posts') {
|
||||
set = 'users:postcount';
|
||||
} else if (activeSection === 'sort-reputation') {
|
||||
set = 'users:reputation';
|
||||
} else if (activeSection === 'online' || activeSection === 'users') {
|
||||
} else if (activeSection === 'online') {
|
||||
set = 'users:online';
|
||||
} else if (activeSection === 'users') {
|
||||
set = 'users:joindate';
|
||||
}
|
||||
|
||||
if (set) {
|
||||
@@ -81,8 +73,8 @@ define('forum/users', ['translator'], function(translator) {
|
||||
templates.parse('users', 'users', data, function(html) {
|
||||
translator.translate(html, function(translated) {
|
||||
translated = $(translated);
|
||||
translated.find('span.timeago').timeago();
|
||||
$('#users-container').append(translated);
|
||||
translated.find('span.timeago').timeago();
|
||||
$('#users-container .anon-user').appendTo($('#users-container'));
|
||||
});
|
||||
});
|
||||
|
||||
@@ -19,7 +19,14 @@ var terms = {
|
||||
|
||||
popularController.get = function(req, res, next) {
|
||||
|
||||
var term = terms[req.params.term] || 'day';
|
||||
var term = terms[req.params.term] || 'alltime';
|
||||
|
||||
var termToBreadcrumb = {
|
||||
day: '[[recent:day]]',
|
||||
week: '[[recent:week]]',
|
||||
month: '[[recent:month]]',
|
||||
alltime: '[[global:header.popular]]'
|
||||
};
|
||||
|
||||
if (!req.uid) {
|
||||
if (anonCache[term] && (Date.now() - lastUpdateTime) < 60 * 60 * 1000) {
|
||||
@@ -40,7 +47,13 @@ popularController.get = function(req, res, next) {
|
||||
};
|
||||
|
||||
if (req.path.startsWith('/api/popular') || req.path.startsWith('/popular')) {
|
||||
data.breadcrumbs = helpers.buildBreadcrumbs([{text: '[[global:header.popular]]'}]);
|
||||
var breadcrumbs = [{text: termToBreadcrumb[term]}];
|
||||
|
||||
if (req.params.term) {
|
||||
breadcrumbs.unshift({text: '[[global:header.popular]]', url: '/popular'});
|
||||
}
|
||||
|
||||
data.breadcrumbs = helpers.buildBreadcrumbs(breadcrumbs);
|
||||
}
|
||||
|
||||
if (!req.uid) {
|
||||
|
||||
@@ -14,10 +14,6 @@ var async = require('async'),
|
||||
db = require('../database'),
|
||||
helpers = require('./helpers');
|
||||
|
||||
usersController.redirectToOnlineUsers = function(req, res, next) {
|
||||
helpers.redirect(res, '/users/online');
|
||||
};
|
||||
|
||||
usersController.getOnlineUsers = function(req, res, next) {
|
||||
var websockets = require('../socket.io');
|
||||
|
||||
@@ -51,7 +47,7 @@ usersController.getOnlineUsers = function(req, res, next) {
|
||||
anonymousUserCount: websockets.getOnlineAnonCount(),
|
||||
defaultGravatar: user.createGravatarURLFromEmail(''),
|
||||
title: '[[pages:users/online]]',
|
||||
breadcrumbs: helpers.buildBreadcrumbs([{text: '[[pages:users/online]]'}])
|
||||
breadcrumbs: helpers.buildBreadcrumbs([{text: '[[global:users]]', url: '/users'}, {text: '[[pages:users/online]]'}])
|
||||
};
|
||||
|
||||
render(req, res, userData, next);
|
||||
@@ -80,12 +76,20 @@ usersController.getUsers = function(set, start, stop, req, res, next) {
|
||||
var setToCrumbs = {
|
||||
'users:postcount': '[[users:top_posters]]',
|
||||
'users:reputation': '[[users:most_reputation]]',
|
||||
'users:joindate': '[[pages:users/latest]]'
|
||||
'users:joindate': '[[global:users]]'
|
||||
};
|
||||
|
||||
var breadcrumbs = [{text: setToCrumbs[set]}];
|
||||
|
||||
if (set !== 'users:joindate') {
|
||||
breadcrumbs.unshift({text: '[[global:users]]', url: '/users'});
|
||||
}
|
||||
|
||||
usersController.getUsersAndCount(set, req.uid, start, stop, function(err, data) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
var pageCount = Math.ceil(data.count / (parseInt(meta.config.userSearchResultsPerPage, 10) || 20));
|
||||
var userData = {
|
||||
search_display: 'hidden',
|
||||
@@ -93,7 +97,7 @@ usersController.getUsers = function(set, start, stop, req, res, next) {
|
||||
users: data.users,
|
||||
pagination: pagination.create(1, pageCount),
|
||||
title: setToTitles[set] || '[[pages:users/latest]]',
|
||||
breadcrumbs: helpers.buildBreadcrumbs([{text: setToCrumbs[set]}])
|
||||
breadcrumbs: helpers.buildBreadcrumbs(breadcrumbs)
|
||||
};
|
||||
userData['route_' + set] = true;
|
||||
render(req, res, userData, next);
|
||||
@@ -136,7 +140,7 @@ usersController.getUsersForSearch = function(req, res, next) {
|
||||
loadmore_display: 'hidden',
|
||||
users: data.users,
|
||||
title: '[[pages:users/search]]',
|
||||
breadcrumbs: helpers.buildBreadcrumbs([{text: '[[pages:users/search]]'}])
|
||||
breadcrumbs: helpers.buildBreadcrumbs([{text: '[[global:users]]', url: '/users'}, {text: '[[global:search]]'}])
|
||||
};
|
||||
|
||||
render(req, res, userData, next);
|
||||
@@ -212,7 +216,11 @@ usersController.getMap = function(req, res, next) {
|
||||
}
|
||||
});
|
||||
|
||||
res.render('usersMap', {rooms: data, title: '[[pages:users/map]]', breadcrumbs: helpers.buildBreadcrumbs([{text: '[[pages:users/map]]'}])});
|
||||
res.render('usersMap', {
|
||||
rooms: data,
|
||||
title: '[[pages:users/map]]',
|
||||
breadcrumbs: helpers.buildBreadcrumbs([{text: '[[global:users]]', url: '/users'}, {text: '[[global:map]]'}])
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -78,11 +78,10 @@ function accountRoutes(app, middleware, controllers) {
|
||||
function userRoutes(app, middleware, controllers) {
|
||||
var middlewares = [middleware.checkGlobalPrivacySettings];
|
||||
|
||||
setupPageRoute(app, '/users', middleware, middlewares, controllers.users.redirectToOnlineUsers);
|
||||
setupPageRoute(app, '/users', middleware, middlewares, controllers.users.getUsersSortedByJoinDate);
|
||||
setupPageRoute(app, '/users/online', middleware, middlewares, controllers.users.getOnlineUsers);
|
||||
setupPageRoute(app, '/users/sort-posts', middleware, middlewares, controllers.users.getUsersSortedByPosts);
|
||||
setupPageRoute(app, '/users/sort-reputation', middleware, middlewares, controllers.users.getUsersSortedByReputation);
|
||||
setupPageRoute(app, '/users/latest', middleware, middlewares, controllers.users.getUsersSortedByJoinDate);
|
||||
setupPageRoute(app, '/users/search', middleware, middlewares, controllers.users.getUsersForSearch);
|
||||
setupPageRoute(app, '/users/map', middleware, middlewares, controllers.users.getMap);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user