admin/system: move status panel above tabs, add collapse toggle

Status (services, PHP env, disk) is now always visible above the log/config
tab bar rather than being one of the tab targets:

- Status section rendered unconditionally above <nav class="sys-tabs">.
- Services grid, PHP info grid and disk bar grouped inside a collapsible
  <section> with a header row containing the cache-freshness badge and a
  toggle button (▲ Réduire / ▼ Développer).
- Collapse state persisted in localStorage so the preference survives
  page reloads (e.g. when switching log tabs).
- Tab bar now only contains the three log tabs + nginx config; the 'Statut'
  tab is removed. Legacy ?tab=status URLs fall through to nginx_access.
- PHP/disk sub-sections laid out in a 2-col grid inside the status panel;
  responsive single-col below 700px.
- system.css: new .sys-status-section / .sys-status-header /
  .sys-status-toggle / .sys-status-meta rules added.
- aria-current="page" added to active tab links.
- todo/03-system-cache.md: all items marked done; notes added explaining
  why log caching was deliberately omitted.
This commit is contained in:
Pontoporeia
2026-04-02 18:31:38 +02:00
parent e1ce900113
commit c86781b9be
3 changed files with 155 additions and 76 deletions

View File

@@ -30,6 +30,48 @@
border-bottom-color: var(--accent-primary);
}
/* ── Status section (always-visible panel above tabs) ─────────────────── */
.sys-status-section {
background: #1a1a1a;
border: 1px solid #555;
border-radius: 6px;
padding: 1rem 1.25rem 1.25rem;
margin-bottom: 1.75rem;
}
.sys-status-header {
display: flex;
align-items: center;
justify-content: space-between;
margin-bottom: 1rem;
}
.sys-status-toggle {
background: none;
border: 1px solid #555;
color: #969696;
border-radius: 3px;
font-size: .72rem;
font-family: inherit;
padding: .2rem .55rem;
cursor: pointer;
white-space: nowrap;
transition: color .15s, border-color .15s;
}
.sys-status-toggle:hover {
color: #e8e8e8;
border-color: #888;
}
.sys-status-meta {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 1.5rem 2rem;
margin-top: 1.5rem;
padding-top: 1.25rem;
border-top: 1px solid #333;
}
@media (max-width: 700px) {
.sys-status-meta { grid-template-columns: 1fr; }
}
/* ── Status cards ──────────────────────────────────────────────────────── */
.srv-grid {
display: grid;