diff --git a/public/src/client/category.js b/public/src/client/category.js index 10816286d9..fc4e7e21f3 100644 --- a/public/src/client/category.js +++ b/public/src/client/category.js @@ -61,6 +61,7 @@ define('forum/category', [ handleIgnoreWatch(cid); $(window).trigger('action:topics.loaded', {topics: ajaxify.data.topics}); + $(window).trigger('action:category.loaded', {cid: ajaxify.data.cid}); }; function handleIgnoreWatch(cid) { diff --git a/src/controllers/category.js b/src/controllers/category.js index f2bc7510c6..6c74519c1a 100644 --- a/src/controllers/category.js +++ b/src/controllers/category.js @@ -75,18 +75,19 @@ categoryController.get = function(req, res, callback) { topicIndex = 0; } - var set = 'cid:' + cid + ':tids', - reverse = false; - - if (settings.categoryTopicSort === 'newest_to_oldest') { + var set = 'cid:' + cid + ':tids'; + var reverse = false; + // `sort` qs has priority over user setting + var sort = req.query.sort || settings.categoryTopicSort; + if (sort === 'newest_to_oldest') { reverse = true; - } else if (settings.categoryTopicSort === 'most_posts') { + } else if (sort === 'most_posts') { reverse = true; set = 'cid:' + cid + ':tids:posts'; } - var start = (currentPage - 1) * settings.topicsPerPage + topicIndex, - stop = start + settings.topicsPerPage - 1; + var start = (currentPage - 1) * settings.topicsPerPage + topicIndex; + var stop = start + settings.topicsPerPage - 1; next(null, { cid: cid, @@ -192,7 +193,7 @@ categoryController.get = function(req, res, callback) { categoryData['feeds:disableRSS'] = parseInt(meta.config['feeds:disableRSS'], 10) === 1; categoryData.rssFeedUrl = nconf.get('relative_path') + '/category/' + categoryData.cid + '.rss'; categoryData.title = categoryData.name; - categoryData.pagination = pagination.create(currentPage, pageCount); + categoryData.pagination = pagination.create(currentPage, pageCount, req.query); categoryData.pagination.rel.forEach(function(rel) { rel.href = nconf.get('url') + '/category/' + categoryData.slug + rel.href; res.locals.linkTags.push(rel); diff --git a/src/controllers/topics.js b/src/controllers/topics.js index c65996b82c..9d106a85f2 100644 --- a/src/controllers/topics.js +++ b/src/controllers/topics.js @@ -19,7 +19,6 @@ var topicsController = {}; topicsController.get = function(req, res, callback) { var tid = req.params.topic_id; - var sort = req.query.sort; var currentPage = parseInt(req.query.page, 10) || 1; var pageCount = 1; var userPrivileges; @@ -76,18 +75,13 @@ topicsController.get = function(req, res, callback) { var set = 'tid:' + tid + ':posts'; var reverse = false; - // `sort` qs has priority over user setting + var sort = req.query.sort || settings.topicPostSort; if (sort === 'newest_to_oldest') { reverse = true; } else if (sort === 'most_votes') { reverse = true; 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; @@ -270,7 +264,7 @@ topicsController.get = function(req, res, callback) { data.postDeleteDuration = parseInt(meta.config.postDeleteDuration, 10) || 0; data.scrollToMyPost = settings.scrollToMyPost; 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) { rel.href = nconf.get('url') + '/topic/' + data.slug + rel.href; res.locals.linkTags.push(rel);