D1 Part 2: settings.html split into four pages + sidebar restructure

- settings.html (1451 lines) deleted; sections moved verbatim into
  settings_system.html (Rendszer konfiguráció, Verzió és frissítés,
  Vezérlő/Kiszolgáló újraindítása + update/restart JS),
  settings_notifications.html (Értesítések, Alkalmazás-email),
  settings_security.html (Jelszó módosítás, Földrajzi korlátozás + geo
  JS, Vészhelyzeti információk — heading + section copy accents fixed),
  storage.html (Adattárolók, NAS, migrate progress, agent view + all
  storage JS; wizard entry links now /storage/init|attach with sprite
  icons instead of emoji). The NAS + migrate sections were nested inside
  {{if .StoragePaths}} in the monolith and vanished with zero drives —
  now unconditional on /storage.
- layout.html: Tárhely main-nav item (hard-drive icon) + the
  'Beállítások' sidebar group with Rendszer / Értesítések / Biztonság és
  hozzáférés sub-links (active-state per page key); orphaned
  .sidebar-settings-link CSS deleted (grep-zero), .nav-group-label /
  .nav-links-sub added.
- Handlers wired to their own builders + templates; the legacy
  settingsData() merge deleted.
- scripts/template_id_gate.py: the §10 JS element-ID integrity gate
  (getElementById/querySelector('#…') must resolve in the SAME template;
  JS-created + template-parameterized IDs handled; layout modal IDs
  allowlisted). Red-proven: a storage function planted in the
  notifications template failed the gate with 'static #migrate-progress
  not defined'.
- Tests: per-page section markers + cross-leak assertions, h3 section
  inventory (all 11 old headings accounted for; typo rename asserted).
This commit is contained in:
2026-07-02 19:07:32 +02:00
parent d50a919404
commit f8e18a9ec9
9 changed files with 1062 additions and 890 deletions
+18 -20
View File
@@ -1976,26 +1976,6 @@ a.stat-card:hover {
margin-top: auto;
border-top: 1px solid var(--line);
}
.sidebar-settings-link {
display: flex;
align-items: center;
gap: .6rem;
padding: .75rem 1.5rem;
color: var(--text-2);
text-decoration: none;
font-size: .95rem;
font-weight: 500;
transition: color 0.2s ease, background 0.2s ease;
}
.sidebar-settings-link:hover {
color: var(--blue-bright);
background: var(--blue-dim);
}
.sidebar-settings-link.active {
color: var(--blue-bright);
background: var(--blue-dim);
border-left: 3px solid var(--blue);
}
/* --- Backup page: Storage overview grid --- */
.storage-overview-grid {
@@ -3244,3 +3224,21 @@ span.mono, .mono { font-family: var(--font-data); }
.login-title .title-accent {
color: var(--blue-bright);
}
/* Sidebar settings group (D1) — group label + indented sub-links. */
.nav-group-label {
padding: .75rem 1.5rem .25rem;
font-size: .68rem;
font-weight: 700;
letter-spacing: .1em;
text-transform: uppercase;
color: var(--text-3);
}
.nav-links-sub {
padding: 0 0 .5rem;
flex: none;
}
.nav-links-sub a {
padding: .5rem 1.5rem .5rem 1.75rem;
font-size: .88rem;
}