Wichtige Funktionen direkt in der Seitenleiste
Nach dem Umbau lagen alle Funktionen hinter dem Raster — für die vier, fünf, die man dauernd anfasst, ist das ein Umweg zu viel. Oben in der Seitenleiste steht jetzt „Meine Funktionen": ein Klick öffnet die Seite direkt. Welche dort stehen, entscheidet der Stern auf der Modul-Karte oder auf der Seite selbst. Bewusst nicht alle 35: Deckel bei acht, sonst ist der Gewinn gegenüber dem Raster wieder weg. Der Standard ist eine Vermutung (Devlogs, Willkommen, Tickets, Starboard, Galerie) und ausdrücklich zum Ändern gedacht. Die Auswahl liegt als Einstellung in der Datenbank, nicht im Browser — sie gilt damit auf jedem Gerät und fürs ganze Team. Eine geleerte Auswahl wird als solche gespeichert, sonst käme beim nächsten Laden der Standard zurück. Der Stern ist ungeheftet nur angedeutet und wird erst beim Überfahren deutlich — 35 Karten mit vollen Sternen sähen aus wie ein Sternenhimmel. Nebenbei: bei geöffneter Modul-Seite war sowohl „Module" als auch die Funktion in der Leiste hervorgehoben. Jetzt nur noch die Funktion. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+16
-2
@@ -21,7 +21,7 @@ import {
|
||||
savePage, getPage, listPages, listPublishedPages, deletePage,
|
||||
} from '../db.js';
|
||||
import crypto from 'node:crypto';
|
||||
import { moduleStates, moduleDetail, setModuleEnabled, MODULE_GROUPS, MODULES } from '../modules.js';
|
||||
import { moduleStates, moduleDetail, setModuleEnabled, moduleFavorites, setModuleFavorites, MODULE_GROUPS, MODULES, MAX_FAVORITES } from '../modules.js';
|
||||
import { templateStates, setTemplate, TEMPLATE_GROUPS } from '../templates.js';
|
||||
import { tuningStates, setTuning, TUNING_GROUPS } from '../tuning.js';
|
||||
import { lastResults, GAME_ICONS } from '../bot/server-monitor.js';
|
||||
@@ -190,7 +190,21 @@ export function registerApiRoutes(app, client) {
|
||||
|
||||
app.get('/api/modules', async (request, reply) => {
|
||||
if (requireAnyScope(request, reply)) return;
|
||||
return { modules: moduleStates(), groups: MODULE_GROUPS };
|
||||
return {
|
||||
modules: moduleStates(),
|
||||
groups: MODULE_GROUPS,
|
||||
favorites: moduleFavorites(),
|
||||
maxFavorites: MAX_FAVORITES,
|
||||
};
|
||||
});
|
||||
|
||||
// Welche Funktionen in der Seitenleiste stehen
|
||||
app.put('/api/module-favorites', async (request, reply) => {
|
||||
if (requireScope(request, reply, 'settings')) return;
|
||||
const res = setModuleFavorites(request.body?.ids ?? []);
|
||||
if (!res.ok) return reply.code(400).send({ error: res.error });
|
||||
logAudit(getSessionUser(request), 'seitenleiste geändert', res.favorites.join(', ') || 'leer');
|
||||
return { ok: true, favorites: res.favorites };
|
||||
});
|
||||
|
||||
// Alles zu einer Funktion an einem Ort: ihre Kanäle und Felder, ihre Texte,
|
||||
|
||||
Reference in New Issue
Block a user