mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
refactor: make categories.buildForSelectCategories non async
This commit is contained in:
@@ -323,12 +323,18 @@ Categories.getTree = function (categories, parentCid) {
|
||||
Categories.buildForSelect = async function (uid, privilege) {
|
||||
let categories = await Categories.getCategoriesByPrivilege('categories:cid', uid, privilege);
|
||||
categories = Categories.getTree(categories);
|
||||
return await Categories.buildForSelectCategories(categories);
|
||||
return Categories.buildForSelectCategories(categories);
|
||||
};
|
||||
|
||||
Categories.buildForSelectCategories = async function (categories) {
|
||||
Categories.buildForSelectAll = async function (uid) {
|
||||
const categoryData = await Categories.getAllCategories(uid);
|
||||
const tree = Categories.getTree(categoryData);
|
||||
return Categories.buildForSelectCategories(tree);
|
||||
};
|
||||
|
||||
Categories.buildForSelectCategories = function (categories) {
|
||||
function recursive(category, categoriesData, level, depth) {
|
||||
var bullet = level ? '• ' : '';
|
||||
const bullet = level ? '• ' : '';
|
||||
category.value = category.cid;
|
||||
category.level = level;
|
||||
category.text = level + bullet + category.name;
|
||||
@@ -341,7 +347,7 @@ Categories.buildForSelectCategories = async function (categories) {
|
||||
}
|
||||
}
|
||||
|
||||
var categoriesData = [];
|
||||
const categoriesData = [];
|
||||
|
||||
categories = categories.filter(category => category && !category.parentCid);
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ categoriesController.get = async function (req, res, next) {
|
||||
const [categoryData, parent, allCategories] = await Promise.all([
|
||||
categories.getCategories([req.params.category_id], req.uid),
|
||||
categories.getParents([req.params.category_id]),
|
||||
getAllCategories(req.uid),
|
||||
categories.buildForSelectAll(req.uid),
|
||||
]);
|
||||
|
||||
const category = categoryData[0];
|
||||
@@ -43,13 +43,6 @@ categoriesController.get = async function (req, res, next) {
|
||||
});
|
||||
};
|
||||
|
||||
async function getAllCategories(uid) {
|
||||
const cids = await categories.getAllCidsFromSet('categories:cid');
|
||||
const categoryData = await categories.getCategories(cids, uid);
|
||||
const tree = categories.getTree(categoryData);
|
||||
return await categories.buildForSelectCategories(tree);
|
||||
}
|
||||
|
||||
categoriesController.getAll = function (req, res) {
|
||||
// Categories list will be rendered on client side with recursion, etc.
|
||||
res.render('admin/manage/categories', {});
|
||||
|
||||
@@ -8,8 +8,8 @@ const privilegesController = module.exports;
|
||||
privilegesController.get = async function (req, res) {
|
||||
const cid = req.params.cid ? parseInt(req.params.cid, 10) : 0;
|
||||
const [privilegesData, categoriesData] = await Promise.all([
|
||||
getPrivileges(cid),
|
||||
getCategories(req.uid),
|
||||
cid ? privileges.categories.list(cid) : privileges.global.list(),
|
||||
categories.buildForSelectAll(req.uid),
|
||||
]);
|
||||
|
||||
categoriesData.unshift({
|
||||
@@ -36,17 +36,3 @@ privilegesController.get = async function (req, res) {
|
||||
cid: cid,
|
||||
});
|
||||
};
|
||||
|
||||
async function getPrivileges(cid) {
|
||||
if (!cid) {
|
||||
return await privileges.global.list();
|
||||
}
|
||||
return await privileges.categories.list(cid);
|
||||
}
|
||||
|
||||
async function getCategories(uid) {
|
||||
const cids = await categories.getAllCidsFromSet('categories:cid');
|
||||
const categoriesData = await categories.getCategories(cids, uid);
|
||||
const tree = categories.getTree(categoriesData);
|
||||
return await categories.buildForSelectCategories(tree);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user