mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-27 00:56:13 +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) {
|
Categories.buildForSelect = async function (uid, privilege) {
|
||||||
let categories = await Categories.getCategoriesByPrivilege('categories:cid', uid, privilege);
|
let categories = await Categories.getCategoriesByPrivilege('categories:cid', uid, privilege);
|
||||||
categories = Categories.getTree(categories);
|
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) {
|
function recursive(category, categoriesData, level, depth) {
|
||||||
var bullet = level ? '• ' : '';
|
const bullet = level ? '• ' : '';
|
||||||
category.value = category.cid;
|
category.value = category.cid;
|
||||||
category.level = level;
|
category.level = level;
|
||||||
category.text = level + bullet + category.name;
|
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);
|
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([
|
const [categoryData, parent, allCategories] = await Promise.all([
|
||||||
categories.getCategories([req.params.category_id], req.uid),
|
categories.getCategories([req.params.category_id], req.uid),
|
||||||
categories.getParents([req.params.category_id]),
|
categories.getParents([req.params.category_id]),
|
||||||
getAllCategories(req.uid),
|
categories.buildForSelectAll(req.uid),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const category = categoryData[0];
|
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) {
|
categoriesController.getAll = function (req, res) {
|
||||||
// Categories list will be rendered on client side with recursion, etc.
|
// Categories list will be rendered on client side with recursion, etc.
|
||||||
res.render('admin/manage/categories', {});
|
res.render('admin/manage/categories', {});
|
||||||
|
|||||||
@@ -8,8 +8,8 @@ const privilegesController = module.exports;
|
|||||||
privilegesController.get = async function (req, res) {
|
privilegesController.get = async function (req, res) {
|
||||||
const cid = req.params.cid ? parseInt(req.params.cid, 10) : 0;
|
const cid = req.params.cid ? parseInt(req.params.cid, 10) : 0;
|
||||||
const [privilegesData, categoriesData] = await Promise.all([
|
const [privilegesData, categoriesData] = await Promise.all([
|
||||||
getPrivileges(cid),
|
cid ? privileges.categories.list(cid) : privileges.global.list(),
|
||||||
getCategories(req.uid),
|
categories.buildForSelectAll(req.uid),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
categoriesData.unshift({
|
categoriesData.unshift({
|
||||||
@@ -36,17 +36,3 @@ privilegesController.get = async function (req, res) {
|
|||||||
cid: cid,
|
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