Step 2: the settings page can change things - shared draft, Review & Apply, rollback, history, undo
- settings/apply.py: the Apply pipeline (check, keep history, write, restart the watchdog, re-import pages by the marker-only rule, recolour page keys), rollback when the watchdog does not come back, the recording guard with the Emergency (LIVE) override, history entries and Go back / Undo. - settings/server.py: the write routes behind the editing code (draft PUT/DELETE with 409 on a conflict, validate, apply, restore, undo, watchdog restart/stop/start, commands to the watchdog, the switcher file upload / pick newest / discard, gear notes). - settings/ui/app.js: every screen grows inputs with Editing on; keys (checks, fixes, hold-always, members), computers, fixes, site setup (schedules, Dante devices, Spotify, ATEM), Review & Apply with live progress, History with Go back and Undo, Run this fix now. - schema.unmask, push_page.push, nav_keys.colour; tests for all of it (163 pass). - Verified live on NA Ingest: a page-only Apply, a restart Apply, Undo, history. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -73,3 +73,21 @@ pre.log { background: var(--deck); color: #d6dbe4; padding: 10px 12px; border-ra
|
||||
.menu .divider { border: 0; margin: 0 6px; padding: 8px 0; } main { padding: 14px 16px 40px; } .searchresults { left: 16px; }
|
||||
.top { flex-wrap: wrap; } #search { order: 3; flex-basis: 100%; }
|
||||
}
|
||||
/* step 2: editing */
|
||||
.badge { display: inline-block; padding: 4px 10px; border-radius: 999px; background: var(--accent); color: #fff; text-decoration: none; font-weight: 600; font-size: .88rem; white-space: nowrap; }
|
||||
.badge.warn { background: var(--warn); color: #1d2420; }
|
||||
button.toggle.on { background: var(--accent); color: #fff; }
|
||||
button.danger { border-color: var(--problem); color: var(--problem); } button.primary.danger { background: var(--problem); color: #fff; }
|
||||
button.small { padding: 3px 9px; font-size: .85rem; }
|
||||
label.inline { display: inline-flex; align-items: center; gap: 4px; margin: 2px 10px 2px 0; color: var(--fg); font-size: .92rem; }
|
||||
label.btn { display: inline-block; cursor: pointer; border: 1px solid var(--line); background: var(--surface); border-radius: 8px; padding: 6px 12px; }
|
||||
.field input:not([type=checkbox]), .field select, .field textarea { width: 100%; max-width: 520px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--bg); color: var(--fg); font: inherit; }
|
||||
.field textarea.mono, textarea.mono { font-family: var(--mono); font-size: .85rem; }
|
||||
.field input[disabled], .field select[disabled], .field textarea[disabled] { opacity: .75; border-style: dashed; }
|
||||
.field input.hhmm { width: 5.5em; display: inline-block; }
|
||||
.window { margin: 4px 0; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--surface); display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
|
||||
ol.checks li { margin: 8px 0; } .checkbox { padding: 6px 10px; margin: 4px 0; border-left: 3px solid var(--line); }
|
||||
ul.changes li.command { font-family: var(--mono); font-size: .9em; color: var(--problem); }
|
||||
.notice.problem { background: #fdecea; color: #7a1d16; border: 1px solid var(--problem); }
|
||||
ol.steps { padding-left: 18px; } ol.steps li { margin: 3px 0; }
|
||||
tr.sel { background: var(--accent-soft); }
|
||||
|
||||
Reference in New Issue
Block a user