diff --git a/src/categories/index.js b/src/categories/index.js index 7f2410efb5..9937e2b63a 100644 --- a/src/categories/index.js +++ b/src/categories/index.js @@ -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); diff --git a/src/controllers/admin/categories.js b/src/controllers/admin/categories.js index 972c4aad96..26fca0cffb 100644 --- a/src/controllers/admin/categories.js +++ b/src/controllers/admin/categories.js @@ -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', {}); diff --git a/src/controllers/admin/privileges.js b/src/controllers/admin/privileges.js index 3003ace653..a8f24738da 100644 --- a/src/controllers/admin/privileges.js +++ b/src/controllers/admin/privileges.js @@ -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); -}