mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
* feat: wip categories pagination * feat: add subCategoriesPerPage setting * feat: add load more sub categories button to category page * fix: openapi spec * feat: show sub categories left on category page hide button when no more categories left * breaking: rename categories to allCategories on /search categories contains the search results * fix: spec * refactor: remove cidsPerPage * fix: tests * feat: use component for subcategories * fix: prevent negative subCategoriesLeft * feat: new category filter/search WIP * feat: remove categories from /tag * fix: dont load all categories when showing move modal * feat: allow adding custom categories to list * breaking: dont load entire category tree on post queue removed unused code add hooks to filter/selector add options to filter/selector * feat: make selector modal work again * feat: replace old search module * fix: topic move selector * feat: dont load all categories on create category modal * fix: fix more categorySelectors * feat: dont load entire category tree on group details page * feat: dont load all categories on home page and user settings page * feat: add pagination to /user/:userslug/categories * fix: update schemas * fix: more tests * fix: test * feat: flags page, dont return entire category tree * fix: flag test * feat: categories manage page dont load all categories allow changing root category clear caches properly * fix: spec * feat: admins&mods page dont load all categories * fix: spec * fix: dont load all children when opening dropdown * fix: on search results dont return all children * refactor: pass all options, rename options.cids to options.selectedCids * fix: #9266 * fix: index 0 * fix: spec * feat: #9265, add setObjectBulk * refactor: shoter updateOrder * feat: selectors on categories/category * fix: tests and search filter * fix: category update test * feat: pagination on acp categories page show order in set order modal * fix: allow drag&drop on pages > 1 in /admin/manage/categories * fix: teasers for deep nested categories fix sub category display on /category page * fix: spec * refactor: use eslint-disable-next-line * refactor: shorter
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
'use strict';
|
|
|
|
const _ = require('lodash');
|
|
|
|
const db = require('../../database');
|
|
const groups = require('../../groups');
|
|
const categories = require('../../categories');
|
|
const privileges = require('../../privileges');
|
|
const user = require('../../user');
|
|
|
|
const AdminsMods = module.exports;
|
|
|
|
AdminsMods.get = async function (req, res, next) {
|
|
let cid = parseInt(req.query.cid, 10) || 0;
|
|
if (!cid) {
|
|
cid = (await db.getSortedSetRange('cid:0:children', 0, 0))[0];
|
|
}
|
|
const selectedCategory = await categories.getCategoryData(cid);
|
|
if (!selectedCategory) {
|
|
return next();
|
|
}
|
|
const [admins, globalMods, moderators] = await Promise.all([
|
|
groups.get('administrators', { uid: req.uid }),
|
|
groups.get('Global Moderators', { uid: req.uid }),
|
|
getModeratorsOfCategories(selectedCategory),
|
|
]);
|
|
|
|
res.render('admin/manage/admins-mods', {
|
|
admins: admins,
|
|
globalMods: globalMods,
|
|
categoryMods: [moderators],
|
|
selectedCategory: selectedCategory,
|
|
allPrivileges: privileges.userPrivilegeList,
|
|
});
|
|
};
|
|
|
|
async function getModeratorsOfCategories(categoryData) {
|
|
const moderatorUids = await categories.getModeratorUids([categoryData.cid]);
|
|
const uids = _.uniq(_.flatten(moderatorUids));
|
|
const moderatorData = await user.getUsersFields(uids, ['uid', 'username', 'userslug', 'picture']);
|
|
categoryData.moderators = moderatorData;
|
|
return categoryData;
|
|
}
|