mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
refactor: explicit settings/appearance routes
This commit is contained in:
@@ -2,8 +2,14 @@
|
||||
|
||||
const appearanceController = module.exports;
|
||||
|
||||
appearanceController.get = function (req, res) {
|
||||
const term = req.params.term ? req.params.term : 'themes';
|
||||
|
||||
res.render(`admin/appearance/${term}`, {});
|
||||
appearanceController.themes = function (req, res) {
|
||||
res.render(`admin/appearance/themes`, {});
|
||||
};
|
||||
|
||||
appearanceController.skins = function (req, res) {
|
||||
res.render(`admin/appearance/skins`, {});
|
||||
};
|
||||
|
||||
appearanceController.customise = function (req, res) {
|
||||
res.render(`admin/appearance/customise`, {});
|
||||
};
|
||||
|
||||
@@ -16,64 +16,20 @@ const translator = require('../../translator');
|
||||
|
||||
const settingsController = module.exports;
|
||||
|
||||
settingsController.get = async function (req, res) {
|
||||
const term = req.params.term || 'general';
|
||||
const payload = {
|
||||
title: `[[admin/menu:settings/${term}]]`,
|
||||
};
|
||||
if (term === 'general') {
|
||||
payload.routes = await helpers.getHomePageRoutes(req.uid);
|
||||
payload.postSharing = await social.getPostSharing();
|
||||
settingsController.general = async (req, res) => {
|
||||
const routes = await helpers.getHomePageRoutes(req.uid);
|
||||
const postSharing = await social.getPostSharing();
|
||||
const languageData = await languages.list();
|
||||
languageData.forEach((language) => {
|
||||
language.selected = language.code === meta.config.defaultLang;
|
||||
});
|
||||
payload.languages = languageData;
|
||||
payload.autoDetectLang = meta.config.autoDetectLang;
|
||||
}
|
||||
res.render(`admin/settings/${term}`, payload);
|
||||
};
|
||||
|
||||
settingsController.email = async (req, res) => {
|
||||
const emails = await emailer.getTemplates(meta.config);
|
||||
|
||||
res.render('admin/settings/email', {
|
||||
title: '[[admin/menu:settings/email]]',
|
||||
emails: emails,
|
||||
sendable: emails.filter(e => !e.path.includes('_plaintext') && !e.path.includes('partials')).map(tpl => tpl.path),
|
||||
services: emailer.listServices(),
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.user = async (req, res) => {
|
||||
const [notificationTypes, groupData] = await Promise.all([
|
||||
notifications.getAllNotificationTypes(),
|
||||
groups.getNonPrivilegeGroups('groups:createtime', 0, -1),
|
||||
]);
|
||||
const notificationSettings = notificationTypes.map(type => ({
|
||||
name: type,
|
||||
label: `[[notifications:${type.replace(/_/g, '-')}]]`,
|
||||
}));
|
||||
res.render('admin/settings/user', {
|
||||
title: '[[admin/menu:settings/user]]',
|
||||
notificationSettings: notificationSettings,
|
||||
groupsExemptFromNewUserRestrictions: groupData,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.post = async (req, res) => {
|
||||
const groupData = await groups.getNonPrivilegeGroups('groups:createtime', 0, -1);
|
||||
res.render('admin/settings/post', {
|
||||
title: '[[admin/menu:settings/post]]',
|
||||
groupsExemptFromPostQueue: groupData,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.advanced = async (req, res) => {
|
||||
const groupData = await groups.getNonPrivilegeGroups('groups:createtime', 0, -1);
|
||||
res.render('admin/settings/advanced', {
|
||||
title: '[[admin/menu:settings/advanced]]',
|
||||
groupsExemptFromMaintenanceMode: groupData,
|
||||
res.render('admin/settings/general', {
|
||||
title: `[[admin/menu:settings/general]]`,
|
||||
routes,
|
||||
postSharing,
|
||||
languages: languageData,
|
||||
autoDetectLang: meta.config.autoDetectLang,
|
||||
});
|
||||
};
|
||||
|
||||
@@ -107,6 +63,83 @@ settingsController.navigation = async function (req, res) {
|
||||
res.render('admin/settings/navigation', admin);
|
||||
};
|
||||
|
||||
settingsController.user = async (req, res) => {
|
||||
const [notificationTypes, groupData] = await Promise.all([
|
||||
notifications.getAllNotificationTypes(),
|
||||
groups.getNonPrivilegeGroups('groups:createtime', 0, -1),
|
||||
]);
|
||||
const notificationSettings = notificationTypes.map(type => ({
|
||||
name: type,
|
||||
label: `[[notifications:${type.replace(/_/g, '-')}]]`,
|
||||
}));
|
||||
res.render('admin/settings/user', {
|
||||
title: '[[admin/menu:settings/user]]',
|
||||
notificationSettings: notificationSettings,
|
||||
groupsExemptFromNewUserRestrictions: groupData,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.reputation = async (req, res) => {
|
||||
res.render(`admin/settings/reputation`, {
|
||||
title: `[[admin/menu:settings/reputation]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.group = async (req, res) => {
|
||||
res.render(`admin/settings/group`, {
|
||||
title: `[[admin/menu:settings/group]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.tags = async (req, res) => {
|
||||
res.render(`admin/settings/tags`, {
|
||||
title: `[[admin/menu:settings/tags]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.post = async (req, res) => {
|
||||
const groupData = await groups.getNonPrivilegeGroups('groups:createtime', 0, -1);
|
||||
res.render('admin/settings/post', {
|
||||
title: '[[admin/menu:settings/post]]',
|
||||
groupsExemptFromPostQueue: groupData,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.uploads = async (req, res) => {
|
||||
res.render(`admin/settings/uploads`, {
|
||||
title: `[[admin/menu:settings/uploads]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.email = async (req, res) => {
|
||||
const emails = await emailer.getTemplates(meta.config);
|
||||
|
||||
res.render('admin/settings/email', {
|
||||
title: '[[admin/menu:settings/email]]',
|
||||
emails: emails,
|
||||
sendable: emails.filter(e => !e.path.includes('_plaintext') && !e.path.includes('partials')).map(tpl => tpl.path),
|
||||
services: emailer.listServices(),
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.chat = async (req, res) => {
|
||||
res.render(`admin/settings/chat`, {
|
||||
title: `[[admin/menu:settings/chat]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.pagination = async (req, res) => {
|
||||
res.render(`admin/settings/pagination`, {
|
||||
title: `[[admin/menu:settings/pagination]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.notifications = async (req, res) => {
|
||||
res.render(`admin/settings/notifications`, {
|
||||
title: `[[admin/menu:settings/notifications]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.api = async (req, res) => {
|
||||
const page = parseInt(req.query.page, 10) || 1;
|
||||
const resultsPerPage = 50;
|
||||
@@ -123,3 +156,27 @@ settingsController.api = async (req, res) => {
|
||||
pagination: pagination.create(page, pageCount, req.query),
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.cookies = async (req, res) => {
|
||||
res.render(`admin/settings/cookies`, {
|
||||
title: `[[admin/menu:settings/cookies]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.webCrawler = async (req, res) => {
|
||||
res.render(`admin/settings/web-crawler`, {
|
||||
title: `[[admin/menu:settings/web-crawler]]`,
|
||||
});
|
||||
};
|
||||
|
||||
settingsController.advanced = async (req, res) => {
|
||||
const groupData = await groups.getNonPrivilegeGroups('groups:createtime', 0, -1);
|
||||
res.render('admin/settings/advanced', {
|
||||
title: '[[admin/menu:settings/advanced]]',
|
||||
groupsExemptFromMaintenanceMode: groupData,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -32,15 +32,27 @@ module.exports = function (app, name, middleware, controllers) {
|
||||
helpers.setupAdminPageRoute(app, `/${name}/manage/uploads`, middlewares, controllers.admin.uploads.get);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/manage/digest`, middlewares, controllers.admin.digest.get);
|
||||
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/email`, middlewares, controllers.admin.settings.email);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/user`, middlewares, controllers.admin.settings.user);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/post`, middlewares, controllers.admin.settings.post);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/advanced`, middlewares, controllers.admin.settings.advanced);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/general`, middlewares, controllers.admin.settings.general);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/navigation`, middlewares, controllers.admin.settings.navigation);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/user`, middlewares, controllers.admin.settings.user);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/reputation`, middlewares, controllers.admin.settings.reputation);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/group`, middlewares, controllers.admin.settings.group);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/tags`, middlewares, controllers.admin.settings.tags);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/post`, middlewares, controllers.admin.settings.post);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/uploads`, middlewares, controllers.admin.settings.uploads);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/email`, middlewares, controllers.admin.settings.email);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/chat`, middlewares, controllers.admin.settings.chat);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/pagination`, middlewares, controllers.admin.settings.pagination);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/notifications`, middlewares, controllers.admin.settings.notifications);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/api`, middlewares, controllers.admin.settings.api);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/:term?`, middlewares, controllers.admin.settings.get);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/cookies`, middlewares, controllers.admin.settings.cookies);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/web-crawler`, middlewares, controllers.admin.settings.webCrawler);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/settings/advanced`, middlewares, controllers.admin.settings.advanced);
|
||||
|
||||
helpers.setupAdminPageRoute(app, `/${name}/appearance/themes`, middlewares, controllers.admin.appearance.themes);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/appearance/skins`, middlewares, controllers.admin.appearance.skins);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/appearance/customise`, middlewares, controllers.admin.appearance.customise);
|
||||
|
||||
helpers.setupAdminPageRoute(app, `/${name}/appearance/:term?`, middlewares, controllers.admin.appearance.get);
|
||||
|
||||
helpers.setupAdminPageRoute(app, `/${name}/extend/plugins`, middlewares, controllers.admin.plugins.get);
|
||||
helpers.setupAdminPageRoute(app, `/${name}/extend/widgets`, middlewares, controllers.admin.extend.widgets.get);
|
||||
|
||||
Reference in New Issue
Block a user