Werte für mehrere Funktionen, und Anlegen frischt die Auswahl auf
Deploy / check (push) Has been cancelled
Deploy / deploy (push) Has been cancelled

Zwei Nachzügler zu den Modul-Seiten.

Die Thread-Archivdauer gilt für Tickets und Modmail, hing aber nur an
Tickets — auf der Modmail-Seite fehlte sie also. `module` darf jetzt eine
Liste sein; nach außen kommt immer eine, damit niemand zwischen einem und
mehreren unterscheiden muss.

Und beim Anlegen aus dem Panel wurde nur die Einstellung gesetzt, nicht die
Kanalliste nachgeladen. Der frische Kanal stand damit zwar in der
Einstellung, fehlte aber in der Auswahl — das Feld sah leer aus, obwohl es
gesetzt war. Aufgefallen im Browser-Test: „Einsatzbereit" stand da, die
Auswahl daneben war leer. Jetzt holt reloadSettings Kanäle, Rollen und
Einstellungen frisch; das gilt für den Einzelknopf, den Assistenten und die
Modul-Seiten gleichermaßen.

Nachgeprüft: Kanal über die Status-Liste anlegen, dann ohne Neuladen nach
Feeds wechseln — dort steht #dev-log.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-31 22:00:36 +02:00
co-authored by Claude Fable 5
parent c88926aba0
commit de4e812896
4 changed files with 30 additions and 14 deletions
+8 -3
View File
@@ -2,7 +2,9 @@
// Wartezeiten, Prüf-Intervalle, Obergrenzen.
//
// `module` verbindet einen Wert mit seiner Funktion — die Modul-Seite zeigt ihn
// dann dort, wo er hingehört, statt nur in der flachen Werte-Liste.
// dann dort, wo er hingehört, statt nur in der flachen Werte-Liste. Ein Wert
// darf zu mehreren gehören (die Thread-Archivdauer gilt für Tickets UND
// Modmail); dann steht dort eine Liste.
//
// Wie bei den Modulen und Vorlagen lebt der Standard im Code und die
// Datenbank enthält nur Abweichungen. `min`/`max` sind keine Kosmetik: sie
@@ -107,7 +109,7 @@ export const TUNING = [
unit: 'Commits', default: 10, min: 1, max: 20,
},
{
id: 'thread_archive_days', module: 'tickets', group: 'grenzen', label: 'Threads archivieren nach',
id: 'thread_archive_days', module: ['tickets', 'modmail'], group: 'grenzen', label: 'Threads archivieren nach',
hint: 'Für Ticket- und Modmail-Threads. Discord erlaubt 1, 3 oder 7 Tage.',
unit: 'Tagen', default: 7, min: 1, max: 7, choices: [1, 3, 7],
},
@@ -171,7 +173,10 @@ export function tuningStates() {
const custom = getSetting(`tune_${t.id}`);
return {
id: t.id, label: t.label, hint: t.hint ?? null,
group: t.group, module: t.module ?? null,
group: t.group,
// Immer als Liste nach außen — der Aufrufer muss dann nicht
// zwischen einem Wert und mehreren unterscheiden
modules: t.module ? [t.module].flat() : [],
unit: t.unit, min: t.min, max: t.max,
choices: t.choices ?? null,
default: t.default,
+1 -1
View File
@@ -202,7 +202,7 @@ export function registerApiRoutes(app, client) {
return {
...detail,
texte: templateStates().filter((t) => t.module === detail.id),
werte: tuningStates().filter((w) => w.module === detail.id),
werte: tuningStates().filter((w) => w.modules.includes(detail.id)),
};
});