- Topbar zeigt rechts jetzt ausschließlich den "Nächste Prüfung"-Countdown,
konsistent auf jeder Seite (auch anonymes Dashboard) statt nur auf dem
Dashboard. Neuer Context-Processor inject_check_timer()/get_last_run_at()
liefert last_run/interval global, ohne dass jede Route das selbst
berechnen muss.
- "+ Neu ..."-Buttons (Devices, Switches, Zugangsdaten, Benutzer, Gruppen)
aus der Topbar entfernt und stattdessen in einen .section-head direkt
über der jeweiligen Tabelle verschoben, zusammen mit einer kurzen
Beschreibung der Seite (bisher nur bei Zugangsdaten/Gruppen vorhanden,
jetzt auch bei Geräte/Switche/Benutzer).
- Live-Log: eigene lokale Timer-Pill entfernt (redundant zum globalen
Timer), "Aktualisieren"-Button in denselben section-head verschoben.
Dashboard: Suchfeld aus der Topbar in den Seiteninhalt verschoben, lokale
Timer-Anzeige entfernt (übernimmt die globale Topbar-Pill), Reload-bei-
Intervallende-Logik bleibt als separater, unsichtbarer Scheduler erhalten.
- Neue generische Tabellen-Sortierung (app.js: initSortableTables): Klick
auf eine Spaltenüberschrift mit data-sort-key sortiert die Zeilen anhand
von data-sort-<key>-Attributen. Unterstützt auch Akkordeon-Tabellen mit
mehreren <tbody> (Gruppen: Haupt- + Detail-Zeile bleiben als Einheit
zusammen, die virtuelle "Admin"-Zeile bleibt über data-sort-pinned immer
oben). Angewendet auf Geräte, Switche, Zugangsdaten, Benutzer, Gruppen.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>