„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:
@@ -9,7 +9,7 @@ import {
|
||||
IconSearch, IconSystem as IconTune,
|
||||
} from '../icons.jsx';
|
||||
import { moduleIcon } from '../module-icons.jsx';
|
||||
import { findSettings } from '../setting-index.js';
|
||||
import { findSettings, SETTING_INDEX } from '../setting-index.js';
|
||||
import { Markdown } from '../markdown.jsx';
|
||||
|
||||
const API_SCOPES = [
|
||||
@@ -348,6 +348,16 @@ export default function Settings({ me }) {
|
||||
// … und zusätzlich auf einzelne Einstellungen, mit Sprung aufs Feld
|
||||
const foundSettings = query ? findSettings(query, canTab) : [];
|
||||
|
||||
/**
|
||||
* Zum Feld einer Einstellung springen — der Bereich kommt aus dem Register,
|
||||
* damit „Einrichten" nicht im falschen Tab landet (das Gitea-Token steht
|
||||
* z. B. bei Brand, nicht bei System).
|
||||
*/
|
||||
function jumpToMissing(fehlt, fallbackTab) {
|
||||
const bekannt = SETTING_INDEX.find((s) => s.id === fehlt.setting);
|
||||
jumpToSetting(bekannt ?? { id: fehlt.setting, tab: fallbackTab });
|
||||
}
|
||||
|
||||
/** Bereich wechseln, zum Feld scrollen und es kurz hervorheben */
|
||||
function jumpToSetting(entry) {
|
||||
setTab(entry.tab);
|
||||
@@ -1155,11 +1165,13 @@ export default function Settings({ me }) {
|
||||
: `${x.create.rolle ? 'Rolle' : 'Kanal'} anlegen`}
|
||||
</button>
|
||||
))}
|
||||
{m.tab && (
|
||||
<button className="btn-mini" onClick={() => setTab(m.tab)}>
|
||||
Einrichten
|
||||
</button>
|
||||
)}
|
||||
<button
|
||||
className="btn-mini"
|
||||
title={`Zum Feld „${m.missing[0].label}" springen`}
|
||||
onClick={() => jumpToMissing(m.missing[0], m.tab)}
|
||||
>
|
||||
Einrichten
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
@@ -1244,7 +1256,7 @@ export default function Settings({ me }) {
|
||||
<label>Guild-ID <span className="field-hint">für sofortige Slash-Commands; greift beim nächsten Neustart</span></label>
|
||||
<input type="text" placeholder="Server-ID" value={form.discord_guild_id} onChange={(e) => setForm({ ...form, discord_guild_id: e.target.value })} />
|
||||
</div>
|
||||
<div className="field">
|
||||
<div className="field" data-setting="gitea_api_token">
|
||||
<label>Gitea-API-Token <span className="field-hint">{form.gitea_api_token_set ? '✓ gesetzt — neuen Wert eingeben zum Ersetzen' : 'für /bug; wird nie wieder angezeigt'}</span></label>
|
||||
<input type="password" placeholder="Token (write-only)" value={giteaToken} onChange={(e) => setGiteaToken(e.target.value)} />
|
||||
</div>
|
||||
@@ -2400,7 +2412,12 @@ export default function Settings({ me }) {
|
||||
)}
|
||||
{!m.enabled && <span className="mod-off">Ausgeschaltet</span>}
|
||||
{m.tab && (
|
||||
<button className="mod-link" onClick={() => setTab(m.tab)}>
|
||||
<button
|
||||
className="mod-link"
|
||||
onClick={() => (m.missing.length > 0
|
||||
? jumpToMissing(m.missing[0], m.tab)
|
||||
: setTab(m.tab))}
|
||||
>
|
||||
Einstellungen →
|
||||
</button>
|
||||
)}
|
||||
|
||||
@@ -83,6 +83,7 @@ export const SETTING_INDEX = [
|
||||
{ id: 'cookie_domain', tab: 'system', label: 'Cookie-Domain', find: 'login beide domains' },
|
||||
{ id: 'gitea_url', tab: 'system', label: 'Gitea-Adresse', find: 'git server url' },
|
||||
{ id: 'discord_guild_id', tab: 'brand', label: 'Server-ID', find: 'guild id discord' },
|
||||
{ id: 'gitea_api_token', tab: 'brand', label: 'Gitea-API-Token', find: 'token bug issue schluessel' },
|
||||
{ id: 'legal_name', tab: 'system', label: 'Impressum: Name', find: 'betreiber rechtstext' },
|
||||
{ id: 'legal_address', tab: 'system', label: 'Impressum: Anschrift', find: 'adresse rechtstext' },
|
||||
{ id: 'legal_email', tab: 'system', label: 'Impressum: E-Mail', find: 'kontakt rechtstext' },
|
||||
|
||||
Reference in New Issue
Block a user