polish(webui): spacing + icon for the System config backup card; doc the status

- Add .backup-system-card { margin-top: 20px } — the card stands alone below the
  two-column cards row (which has no bottom margin), so it was butting against it.
- Add a server-stack icon to the card header (matches the nebula stroke-icon style).
- DEVELOPMENT.md: document the dashboard "System config" card + its last-backup
  status (tag system=config → `system` in the dashboard JSON), the CLI/auto paths,
  and that the libreportal app is excluded from the per-app grid.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Signed-off-by: librelad <librelad@digitalangels.vip>
This commit is contained in:
librelad 2026-05-26 00:43:24 +01:00
parent 1547d047c2
commit 9f37f7655d
3 changed files with 22 additions and 3 deletions

View File

@ -176,6 +176,12 @@
padding: 18px 22px;
}
/* Stands alone below the two-column cards row (which has no bottom margin), so
give it the same vertical rhythm as the summary -> cards gap. */
.backup-system-card {
margin-top: 20px;
}
.backup-card-header {
display: flex;
align-items: baseline;

View File

@ -88,9 +88,16 @@
<div class="backup-repo-list" id="backup-repo-list-summary"></div>
</div>
</div>
<div class="backup-card">
<div class="backup-card backup-system-card">
<div class="backup-card-header">
<h2>System config</h2>
<h2>
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="opacity:.7;vertical-align:-3px;margin-right:7px">
<rect x="2" y="3" width="20" height="6" rx="1"></rect>
<rect x="2" y="9" width="20" height="6" rx="1"></rect>
<line x1="6" y1="6" x2="6.01" y2="6"></line>
<line x1="6" y1="12" x2="6.01" y2="12"></line>
</svg>System config
</h2>
<span class="backup-card-hint">Global settings, WebUI login &amp; backup-location credentials</span>
</div>
<div class="backup-app-tile-meta" id="backup-system-status" style="margin:0 0 10px">

View File

@ -201,7 +201,13 @@ is a dev-only escape hatch.
from the release): `scripts/`, `tools/`, install templates, and the `libreportal`
WebUI app itself (its frontend + generated JSON regenerate; its only state, the
login, lives in the system config). Restore = reinstall the code, then restore
the system config + each app's data dir.
the system config + each app's data dir. The system snapshot runs automatically
in `backup all` and is also on-demand via `libreportal backup system` /
`restore system` (restore lands in a staging dir — never overwrites live config)
and the WebUI **backup dashboard → "System config" card**, which shows its
last-backup status (tag `system=config`, surfaced as `system` in the dashboard
JSON) the same way per-app tiles do. The `libreportal` app is excluded from the
per-app grid since it isn't backed up.
- **New runtime script?** Add it under `scripts/<area>/…` and run
`scripts/source/files/generate_arrays.sh run` (or `libreportal regen arrays`) so
it's sourced (build/standalone tooling under `scripts/release` and