diff --git a/public/src/client/unread.js b/public/src/client/unread.js index 96c54e7536..994d4e1ddb 100644 --- a/public/src/client/unread.js +++ b/public/src/client/unread.js @@ -123,25 +123,20 @@ define('forum/unread', ['forum/recent', 'topicSelect', 'forum/infinitescroll'], } function createCategoryLinks(categories) { - categories = categories.filter(function(category) { - return !category.disabled; - }); - - for(var i=0; i'); + if (category.icon) { link.append(' ' + category.name); } else { link.append(category.name); } - $('') .append(link) .appendTo($('.markread .dropdown-menu')); diff --git a/src/categories.js b/src/categories.js index a4b6ce2092..87c540aaf1 100644 --- a/src/categories.js +++ b/src/categories.js @@ -121,13 +121,7 @@ var async = require('async'), }, function(cids, next) { Categories.getCategories(cids, uid, next); - }, - function(categories, next) { - categories = categories.filter(function(category) { - return !category.disabled; - }); - next(null, categories); - } + } ], callback); }; @@ -286,10 +280,9 @@ var async = require('async'), Categories.getCategoriesData(cids, next); }, function (categories, next) { - // Filter categories to isolate children, and remove disabled categories async.map(cids, function(cid, next) { next(null, categories.filter(function(category) { - return category && parseInt(category.parentCid, 10) === parseInt(cid, 10) && !category.disabled; + return category && parseInt(category.parentCid, 10) === parseInt(cid, 10); })); }, next); } diff --git a/src/privileges/categories.js b/src/privileges/categories.js index 267c9e2c81..4a623eaa27 100644 --- a/src/privileges/categories.js +++ b/src/privileges/categories.js @@ -84,6 +84,9 @@ module.exports = function(privileges) { }); async.parallel({ + categories: function(next) { + categories.getMultipleCategoryFields(cids, ['disabled'], next); + }, allowedTo: function(next) { helpers.isUserAllowedTo(privilege, uid, cids, next); }, @@ -98,6 +101,10 @@ module.exports = function(privileges) { return callback(err); } + cids = cids.filter(function(cid, index) { + return !results.categories[index].disabled; + }); + if (results.isAdmin) { return callback(null, cids); }