Setup-Seite: Kanal-Auswahl, Feed-Regeln und Status im Webinterface
- Settings-Tabelle in SQLite; Env-Variablen nur noch Fallback, Änderungen greifen sofort - /settings (Admin): Devlog-/Commit-Kanal als Dropdown aus allen sichtbaren Textkanälen, je mit Test-senden-Button - Commit-Feed-Regeln: an/aus, Branch-Filter, ignorierte Repos (archiviert wird immer, gefiltert wird nur das Posten; ignorierte Repos komplett übersprungen) - Status-Panel: Bot-Tag, Uptime, Devlog-/Commit-Zahlen, DB-Größe - API: GET/PUT /api/settings, POST /api/settings/test/:target (alles Admin-only) - COMMIT_CHANNEL_ID/DEVLOG_CHANNEL_ID in config optional Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -354,6 +354,86 @@ a.sha:hover { border-color: var(--neon); background: rgba(245, 197, 24, .07); }
|
||||
font-size: .68rem; color: var(--muted2); white-space: nowrap;
|
||||
}
|
||||
|
||||
/* ── SETTINGS ──────────────────────────────────────── */
|
||||
.settings-section {
|
||||
background: var(--bg2);
|
||||
border: 1px solid rgba(255, 255, 255, .06);
|
||||
padding: 1.4rem 1.6rem;
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
.settings-title {
|
||||
font-family: var(--mono);
|
||||
font-size: .72rem; letter-spacing: .3em; text-transform: uppercase;
|
||||
color: var(--neon2);
|
||||
margin-bottom: 1.2rem;
|
||||
}
|
||||
|
||||
.stats { display: flex; flex-wrap: wrap; gap: 2.5rem; }
|
||||
.stat { display: flex; flex-direction: column; gap: .1rem; }
|
||||
.stat-value {
|
||||
font-family: var(--display);
|
||||
font-size: 1.5rem; letter-spacing: .05em; color: var(--text);
|
||||
}
|
||||
.stat-label {
|
||||
font-family: var(--mono);
|
||||
font-size: .6rem; letter-spacing: .25em; text-transform: uppercase;
|
||||
color: var(--muted2);
|
||||
}
|
||||
|
||||
.field { margin-bottom: 1.1rem; }
|
||||
.field:last-child { margin-bottom: 0; }
|
||||
.field > label {
|
||||
display: block;
|
||||
font-family: var(--mono);
|
||||
font-size: .68rem; letter-spacing: .15em; text-transform: uppercase;
|
||||
color: var(--muted);
|
||||
margin-bottom: .4rem;
|
||||
}
|
||||
.field-hint {
|
||||
text-transform: none; letter-spacing: .03em;
|
||||
color: var(--muted2); margin-left: .5rem;
|
||||
}
|
||||
.field-row { display: flex; gap: .6rem; }
|
||||
.field-row select { flex: 1; }
|
||||
|
||||
.field select, .field input[type="text"] {
|
||||
width: 100%;
|
||||
background: #0d0d0d;
|
||||
border: 1px solid rgba(255, 255, 255, .12);
|
||||
color: var(--text);
|
||||
font-family: var(--body);
|
||||
font-size: .95rem;
|
||||
padding: .5rem .7rem;
|
||||
outline: none;
|
||||
transition: border-color .2s;
|
||||
}
|
||||
.field select:focus, .field input[type="text"]:focus { border-color: var(--neon); }
|
||||
.field select option { background: #0d0d0d; }
|
||||
|
||||
.toggle { display: flex; align-items: center; gap: .6rem; cursor: pointer; }
|
||||
.toggle input {
|
||||
appearance: none;
|
||||
width: 34px; height: 18px; flex-shrink: 0;
|
||||
background: #222; border: 1px solid rgba(255, 255, 255, .15);
|
||||
position: relative; cursor: pointer;
|
||||
transition: background .2s, border-color .2s;
|
||||
}
|
||||
.toggle input::after {
|
||||
content: '';
|
||||
position: absolute; top: 2px; left: 2px;
|
||||
width: 12px; height: 12px;
|
||||
background: var(--muted);
|
||||
transition: transform .2s, background .2s;
|
||||
}
|
||||
.toggle input:checked { background: rgba(245, 197, 24, .2); border-color: var(--neon); }
|
||||
.toggle input:checked::after { transform: translateX(16px); background: var(--neon); }
|
||||
.toggle > span:first-of-type { color: var(--text); font-size: .95rem; }
|
||||
|
||||
.settings-actions { display: flex; align-items: center; gap: 1rem; }
|
||||
.btn-save { background: var(--neon); color: #0a0a0a; border-color: var(--neon); font-weight: 600; }
|
||||
.btn-save:hover:not(:disabled) { background: var(--text); border-color: var(--text); }
|
||||
.feedback { font-family: var(--mono); font-size: .75rem; letter-spacing: .1em; color: var(--success); }
|
||||
|
||||
/* ── PAGINATION ────────────────────────────────────── */
|
||||
.pager {
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
|
||||
Reference in New Issue
Block a user