Changeset 6e0249f in Klonkt for src/routes/admin-settings.js


Ignore:
Timestamp:
06/14/2026 03:21:25 PM (3 months ago)
Author:
roboburr <roboburr@…>
Branches:
main
Children:
4c5169f
Parents:
743bb81
Message:

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@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/routes/admin-settings.js

    r743bb81 r6e0249f  
    11/**
    2  * Admin: globale instellingen — nu de tenancy-modus (Solo/Hub).
     2 * Admin: globale instellingen.
     3 *  - tenancy-modus (Solo/Hub)
     4 *  - hub-branding (naam/tagline/intro van de generieke hub-hoofdpagina)
    35 *
    4  * GET  /admin/settings        -> toon huidige modus + uitleg
    5  * POST /admin/settings        -> sla modus op (god-only)
     6 * GET  /admin/settings   -> toon huidige instellingen
     7 * POST /admin/settings   -> sla op (god-only)
    68 *
    7  * Schakelen is niet-destructief: Solo verbergt alleen de multi-site-onderdelen
    8  * en routeert naar de primaire site; er wordt niets verwijderd.
     9 * De hub-pagina is generiek (van geen enkele user); deze branding leeft in
     10 * globale settings, niet in een site.
    911 */
    1012
     
    1214import { renderPage } from '../middleware/render.js';
    1315import { requireGod } from '../middleware/auth.js';
    14 import { getTenancy, setTenancy } from '../services/SettingsService.js';
     16import { getTenancy, setTenancy, getSetting, setSetting } from '../services/SettingsService.js';
    1517
    1618const router = express.Router();
     
    2123    bodyClass: 'on-admin',
    2224    tenancy: getTenancy(),
     25    hubTitle: getSetting('hub_title') || '',
     26    hubTagline: getSetting('hub_tagline') || '',
     27    hubIntro: getSetting('hub_intro') || '',
    2328    success: req.query.success || null,
    2429  });
     
    2631
    2732router.post('/', requireGod, (req, res) => {
    28   setTenancy(req.body.tenancy === 'hub' ? 'hub' : 'solo');
    29   res.redirect('/admin/settings?success=' + encodeURIComponent('Modus opgeslagen'));
     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'));
    3046});
    3147
Note: See TracChangeset for help on using the changeset viewer.