mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
action:category.loaded, sort qs on category page
This commit is contained in:
@@ -61,6 +61,7 @@ define('forum/category', [
|
|||||||
handleIgnoreWatch(cid);
|
handleIgnoreWatch(cid);
|
||||||
|
|
||||||
$(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics});
|
$(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics});
|
||||||
|
$(window).trigger('action:category.loaded', {cid: ajaxify.data.cid});
|
||||||
};
|
};
|
||||||
|
|
||||||
function handleIgnoreWatch(cid) {
|
function handleIgnoreWatch(cid) {
|
||||||
|
|||||||
@@ -75,18 +75,19 @@ categoryController.get = function(req, res, callback) {
|
|||||||
topicIndex = 0;
|
topicIndex = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
var set = 'cid:' + cid + ':tids',
|
var set = 'cid:' + cid + ':tids';
|
||||||
reverse = false;
|
var reverse = false;
|
||||||
|
// `sort` qs has priority over user setting
|
||||||
if (settings.categoryTopicSort === 'newest_to_oldest') {
|
var sort = req.query.sort || settings.categoryTopicSort;
|
||||||
|
if (sort === 'newest_to_oldest') {
|
||||||
reverse = true;
|
reverse = true;
|
||||||
} else if (settings.categoryTopicSort === 'most_posts') {
|
} else if (sort === 'most_posts') {
|
||||||
reverse = true;
|
reverse = true;
|
||||||
set = 'cid:' + cid + ':tids:posts';
|
set = 'cid:' + cid + ':tids:posts';
|
||||||
}
|
}
|
||||||
|
|
||||||
var start = (currentPage - 1) * settings.topicsPerPage + topicIndex,
|
var start = (currentPage - 1) * settings.topicsPerPage + topicIndex;
|
||||||
stop = start + settings.topicsPerPage - 1;
|
var stop = start + settings.topicsPerPage - 1;
|
||||||
|
|
||||||
next(null, {
|
next(null, {
|
||||||
cid: cid,
|
cid: cid,
|
||||||
@@ -192,7 +193,7 @@ categoryController.get = function(req, res, callback) {
|
|||||||
categoryData['feeds:disableRSS'] = parseInt(meta.config['feeds:disableRSS'], 10) === 1;
|
categoryData['feeds:disableRSS'] = parseInt(meta.config['feeds:disableRSS'], 10) === 1;
|
||||||
categoryData.rssFeedUrl = nconf.get('relative_path') + '/category/' + categoryData.cid + '.rss';
|
categoryData.rssFeedUrl = nconf.get('relative_path') + '/category/' + categoryData.cid + '.rss';
|
||||||
categoryData.title = categoryData.name;
|
categoryData.title = categoryData.name;
|
||||||
categoryData.pagination = pagination.create(currentPage, pageCount);
|
categoryData.pagination = pagination.create(currentPage, pageCount, req.query);
|
||||||
categoryData.pagination.rel.forEach(function(rel) {
|
categoryData.pagination.rel.forEach(function(rel) {
|
||||||
rel.href = nconf.get('url') + '/category/' + categoryData.slug + rel.href;
|
rel.href = nconf.get('url') + '/category/' + categoryData.slug + rel.href;
|
||||||
res.locals.linkTags.push(rel);
|
res.locals.linkTags.push(rel);
|
||||||
|
|||||||
@@ -19,7 +19,6 @@ var topicsController = {};
|
|||||||
|
|
||||||
topicsController.get = function(req, res, callback) {
|
topicsController.get = function(req, res, callback) {
|
||||||
var tid = req.params.topic_id;
|
var tid = req.params.topic_id;
|
||||||
var sort = req.query.sort;
|
|
||||||
var currentPage = parseInt(req.query.page, 10) || 1;
|
var currentPage = parseInt(req.query.page, 10) || 1;
|
||||||
var pageCount = 1;
|
var pageCount = 1;
|
||||||
var userPrivileges;
|
var userPrivileges;
|
||||||
@@ -76,18 +75,13 @@ topicsController.get = function(req, res, callback) {
|
|||||||
|
|
||||||
var set = 'tid:' + tid + ':posts';
|
var set = 'tid:' + tid + ':posts';
|
||||||
var reverse = false;
|
var reverse = false;
|
||||||
|
|
||||||
// `sort` qs has priority over user setting
|
// `sort` qs has priority over user setting
|
||||||
|
var sort = req.query.sort || settings.topicPostSort;
|
||||||
if (sort === 'newest_to_oldest') {
|
if (sort === 'newest_to_oldest') {
|
||||||
reverse = true;
|
reverse = true;
|
||||||
} else if (sort === 'most_votes') {
|
} else if (sort === 'most_votes') {
|
||||||
reverse = true;
|
reverse = true;
|
||||||
set = 'tid:' + tid + ':posts:votes';
|
set = 'tid:' + tid + ':posts:votes';
|
||||||
} else if (settings.topicPostSort === 'newest_to_oldest') {
|
|
||||||
reverse = true;
|
|
||||||
} else if (settings.topicPostSort === 'most_votes') {
|
|
||||||
reverse = true;
|
|
||||||
set = 'tid:' + tid + ':posts:votes';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var postIndex = 0;
|
var postIndex = 0;
|
||||||
@@ -270,7 +264,7 @@ topicsController.get = function(req, res, callback) {
|
|||||||
data.postDeleteDuration = parseInt(meta.config.postDeleteDuration, 10) || 0;
|
data.postDeleteDuration = parseInt(meta.config.postDeleteDuration, 10) || 0;
|
||||||
data.scrollToMyPost = settings.scrollToMyPost;
|
data.scrollToMyPost = settings.scrollToMyPost;
|
||||||
data.rssFeedUrl = nconf.get('relative_path') + '/topic/' + data.tid + '.rss';
|
data.rssFeedUrl = nconf.get('relative_path') + '/topic/' + data.tid + '.rss';
|
||||||
data.pagination = pagination.create(currentPage, pageCount);
|
data.pagination = pagination.create(currentPage, pageCount, req.query);
|
||||||
data.pagination.rel.forEach(function(rel) {
|
data.pagination.rel.forEach(function(rel) {
|
||||||
rel.href = nconf.get('url') + '/topic/' + data.slug + rel.href;
|
rel.href = nconf.get('url') + '/topic/' + data.slug + rel.href;
|
||||||
res.locals.linkTags.push(rel);
|
res.locals.linkTags.push(rel);
|
||||||
|
|||||||
Reference in New Issue
Block a user