„Einrichten" zeigt jetzt, was fehlt — und Env-Werte gelten als gesetzt
Zwei Fehler, die zusammen für Ratlosigkeit gesorgt haben. In der Liste stand „Fehlermeldungen — Gitea-Token", obwohl das Token über GITEA_API_TOKEN längst gesetzt war und /bug lief. Grund: die Voraussetzungs-Prüfung las die Einstellung roh statt den wirksamen Wert, sah also nur in die Datenbank und nicht in die Umgebung. Betraf außerdem Devlog-Kanal, Commit-Kanal und Guild-ID. runtime-settings hat dafür jetzt effectiveSetting(), das beides zusammenführt. Und wer dann auf „Einrichten" drückte, landete im System-Bereich — dort gibt es gar kein Token-Feld, das steht bei Brand. Das Modul zeigte auf den falschen Bereich. Jetzt springt „Einrichten" auf das konkrete Feld und hebt es kurz hervor, statt nur den Bereich zu wechseln. Der Bereich kommt dabei aus dem Einstellungs-Register, das ohnehin weiß, wo jedes Feld liegt — damit kann die Zuordnung am Modul nicht mehr auseinanderlaufen. Dieselbe Logik hängt an „Einstellungen →" auf den Modul-Karten. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+7
-2
@@ -9,6 +9,7 @@
|
||||
// arbeiten kann. Fehlt etwas, zeigt das Panel „noch nicht einsatzbereit"
|
||||
// statt das Modul stillschweigend nichts tun zu lassen.
|
||||
import { getSetting, setSetting } from './db.js';
|
||||
import { effectiveSetting } from './runtime-settings.js';
|
||||
|
||||
export const MODULE_GROUPS = [
|
||||
{ id: 'inhalte', label: 'Inhalte & Feeds' },
|
||||
@@ -162,7 +163,9 @@ export const MODULES = [
|
||||
{
|
||||
id: 'bug_reports', group: 'moderation', name: 'Fehlermeldungen',
|
||||
desc: 'Meldungen werden zu Issues im Repository, mit Rückmeldung beim Schließen.',
|
||||
tab: 'system', default: true,
|
||||
// Der Token steht im Brand-Bereich („Aus der Env verlagert"), nicht im
|
||||
// System-Bereich — sonst landet „Einrichten" an der falschen Stelle.
|
||||
tab: 'brand', default: true,
|
||||
requires: [{ setting: 'gitea_api_token', label: 'Gitea-Token' }],
|
||||
},
|
||||
|
||||
@@ -251,7 +254,9 @@ export function setModuleEnabled(id, on) {
|
||||
*/
|
||||
export function moduleMissing(mod) {
|
||||
return (mod.requires ?? [])
|
||||
.filter((r) => !String(getSetting(r.setting) ?? '').trim())
|
||||
// Effektiver Wert, nicht nur die Einstellung: was über die Umgebung
|
||||
// gesetzt ist, fehlt nicht.
|
||||
.filter((r) => !effectiveSetting(r.setting))
|
||||
.map((r) => ({ setting: r.setting, label: r.label, create: r.create ?? null }));
|
||||
}
|
||||
|
||||
|
||||
@@ -229,6 +229,29 @@ export function welcomeChannelId() {
|
||||
return getSetting('welcome_channel_id') || null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wert einer Einstellung so, wie er tatsächlich wirkt — also inklusive der
|
||||
* Env-Fallbacks aus config.js.
|
||||
*
|
||||
* Ohne das meldet die Config Sachen als „fehlt", die über die Umgebung längst
|
||||
* gesetzt sind: Wer sein Gitea-Token per GITEA_API_TOKEN übergibt, sieht in
|
||||
* der Liste „Fehlermeldungen — Gitea-Token", obwohl /bug einwandfrei läuft.
|
||||
*
|
||||
* @param {string} key
|
||||
* @returns {string}
|
||||
*/
|
||||
export function effectiveSetting(key) {
|
||||
const gesetzt = String(getSetting(key) ?? '').trim();
|
||||
if (gesetzt) return gesetzt;
|
||||
const ausDerEnv = {
|
||||
devlog_channel_id: config.devlogChannelId,
|
||||
commit_channel_id: config.commitChannelId,
|
||||
gitea_api_token: config.giteaApiToken,
|
||||
discord_guild_id: config.discordGuildId,
|
||||
}[key];
|
||||
return String(ausDerEnv ?? '').trim();
|
||||
}
|
||||
|
||||
/**
|
||||
* Aussehen der Willkommens-Karte. Die Standardwerte sind der Marken-Look;
|
||||
* die Marken-Farben ziehen automatisch nach, solange nichts eigenes gesetzt ist.
|
||||
|
||||
Reference in New Issue
Block a user