mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 18:46:01 +01:00
unread/recent changes closes #4774
This commit is contained in:
@@ -5,6 +5,8 @@ var async = require('async');
|
||||
var validator = require('validator');
|
||||
var winston = require('winston');
|
||||
|
||||
var user = require('../user');
|
||||
var privileges = require('../privileges');
|
||||
var categories = require('../categories');
|
||||
var plugins = require('../plugins');
|
||||
var meta = require('../meta');
|
||||
@@ -129,4 +131,49 @@ helpers.buildTitle = function (pageTitle) {
|
||||
return title;
|
||||
};
|
||||
|
||||
helpers.getWatchedCategories = function(uid, selectedCid, callback) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
user.getWatchedCategories(uid, next);
|
||||
},
|
||||
function (cids, next) {
|
||||
privileges.categories.filterCids('read', cids, uid, next);
|
||||
},
|
||||
function (cids, next) {
|
||||
categories.getCategoriesFields(cids, ['cid', 'name', 'slug', 'icon', 'link', 'color', 'bgColor', 'parentCid'], next);
|
||||
},
|
||||
function (categoryData, next) {
|
||||
categoryData = categoryData.filter(function (category) {
|
||||
return category && !category.link;
|
||||
});
|
||||
|
||||
var selectedCategory;
|
||||
categoryData.forEach(function (category) {
|
||||
category.selected = parseInt(category.cid, 10) === parseInt(selectedCid, 10);
|
||||
if (category.selected) {
|
||||
selectedCategory = category;
|
||||
}
|
||||
});
|
||||
|
||||
var categoriesData = [];
|
||||
var tree = categories.getTree(categoryData, 0);
|
||||
|
||||
tree.forEach(function (category) {
|
||||
recursive(category, categoriesData, '');
|
||||
});
|
||||
|
||||
next(null, {categories: categoriesData, selectedCategory: selectedCategory});
|
||||
}
|
||||
], callback);
|
||||
};
|
||||
|
||||
function recursive(category, categoriesData, level) {
|
||||
category.level = level;
|
||||
categoriesData.push(category);
|
||||
|
||||
category.children.forEach(function (child) {
|
||||
recursive(child, categoriesData, ' ' + level);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = helpers;
|
||||
|
||||
Reference in New Issue
Block a user