Add default theme management to branding settings and admin interface
All checks were successful
Build & Push Docker Image / build (push) Successful in 6m14s

This commit is contained in:
2026-02-27 15:54:41 +01:00
parent d7d7991ff0
commit 2762df3e57
6 changed files with 102 additions and 8 deletions

View File

@@ -76,12 +76,14 @@ function findLogoFile() {
router.get('/', async (req, res) => {
try {
const appName = await getSetting('app_name');
const defaultTheme = await getSetting('default_theme');
const logoFile = findLogoFile();
res.json({
appName: appName || 'Redlight',
hasLogo: !!logoFile,
logoUrl: logoFile ? '/api/branding/logo' : null,
defaultTheme: defaultTheme || null,
});
} catch (err) {
console.error('Get branding error:', err);
@@ -156,4 +158,19 @@ router.put('/name', authenticateToken, requireAdmin, async (req, res) => {
}
});
// PUT /api/branding/default-theme - Set default theme for unauthenticated pages (admin only)
router.put('/default-theme', authenticateToken, requireAdmin, async (req, res) => {
try {
const { defaultTheme } = req.body;
if (!defaultTheme || !defaultTheme.trim()) {
return res.status(400).json({ error: 'defaultTheme is required' });
}
await setSetting('default_theme', defaultTheme.trim());
res.json({ defaultTheme: defaultTheme.trim() });
} catch (err) {
console.error('Update default theme error:', err);
res.status(500).json({ error: 'Could not update default theme' });
}
});
export default router;