action:category.loaded, sort qs on category page

v1.18.x
barisusakli 9 years ago
parent ecafd87e91
commit 58ab76d3c2

@ -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);

Loading…
Cancel
Save