source: Klonkt/src/routes/admin-settings.js@ 6e0249f

main
Last change on this file since 6e0249f was 6e0249f, checked in by roboburr <roboburr@…>, 3 months ago

hub: generic home page (not owned by any user) + admin-managed branding

The hub home page was the oldest site (a user's PrutFolio). Now it is a
generic page: title/tagline/intro come from global settings (hub_title/
hub_tagline/hub_intro), editable in Admin -> Settings (hub only). The roster
now shows ALL users (including the admin's own PrutFolio under /user/<slug>)
— no site is singled out as "the company" any more.

POST /admin/settings only updates tenancy when the field is present (a
separate branding form no longer accidentally flips the mode).

Co-Authored-By: Claude <noreply@…>

  • Property mode set to 100644
File size: 1.7 KB
RevLine 
[6351545]1/**
[6e0249f]2 * Admin: globale instellingen.
3 * - tenancy-modus (Solo/Hub)
4 * - hub-branding (naam/tagline/intro van de generieke hub-hoofdpagina)
[6351545]5 *
[6e0249f]6 * GET /admin/settings -> toon huidige instellingen
7 * POST /admin/settings -> sla op (god-only)
[6351545]8 *
[6e0249f]9 * De hub-pagina is generiek (van geen enkele user); deze branding leeft in
10 * globale settings, niet in een site.
[6351545]11 */
12
13import express from 'express';
14import { renderPage } from '../middleware/render.js';
15import { requireGod } from '../middleware/auth.js';
[6e0249f]16import { getTenancy, setTenancy, getSetting, setSetting } from '../services/SettingsService.js';
[6351545]17
18const router = express.Router();
19
20router.get('/', requireGod, (req, res) => {
21 renderPage(req, res, 'pages/admin-settings', {
22 pageTitle: 'Instellingen',
23 bodyClass: 'on-admin',
24 tenancy: getTenancy(),
[6e0249f]25 hubTitle: getSetting('hub_title') || '',
26 hubTagline: getSetting('hub_tagline') || '',
27 hubIntro: getSetting('hub_intro') || '',
[6351545]28 success: req.query.success || null,
29 });
30});
31
32router.post('/', requireGod, (req, res) => {
[6e0249f]33 if (typeof req.body.tenancy !== 'undefined') {
34 setTenancy(req.body.tenancy === 'hub' ? 'hub' : 'solo');
35 }
36 if (typeof req.body.hub_title !== 'undefined') {
37 setSetting('hub_title', (req.body.hub_title || '').toString().slice(0, 80).trim());
38 }
39 if (typeof req.body.hub_tagline !== 'undefined') {
40 setSetting('hub_tagline', (req.body.hub_tagline || '').toString().slice(0, 120).trim());
41 }
42 if (typeof req.body.hub_intro !== 'undefined') {
43 setSetting('hub_intro', (req.body.hub_intro || '').toString().slice(0, 400).trim());
44 }
45 res.redirect('/admin/settings?success=' + encodeURIComponent('Opgeslagen'));
[6351545]46});
47
48export default router;
Note: See TracBrowser for help on using the repository browser.