Selbst-Update-Sicherung, Service-Prognose ohne Servicebuch und Sicherheit neu gestaltet
- aktualisierung.py: Backup-Ordner verliert sein manifest.json beim Sichern, sonst laedt HA ihn nach einem Neustart als zweite audi_dashboard-Integration (Ursache des raetselhaften "gleicher Pfad"-Umbenennungs-Fehlers). - service.ts/audi-dashboard-app.js: Uebersicht faellt jetzt wie Service schon auf die Fahrzeugmeldung zurueck, wenn kein Servicebucheintrag existiert; eigenes (kuerzeres) Oelwechsel-Intervall wird jetzt auch ohne Servicebuch- eintrag naeherungsweise aus der Herstellermeldung hochgerechnet, statt weiterhin unveraendert die Herstellervorgabe zu zeigen. - Sicherheit neu gestaltet: vier Sammelzeilen (Fahrzeug verriegelt / Tueren und Klappen geschlossen / Fenster und Dach geschlossen / Kein Licht) statt einer flachen Liste, mit neuen Tuerschloss-, Dach- und Standlicht-Sensor- rollen, Kreis-Haekchen-Symbolen und einer Detailseite je Tuer/Motorhaube/ Kofferraum in beiden Frontends. Details, Verifikation und Sensor-Rollen in AGENTS.md (Abschnitte J/M/N). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -411,6 +411,26 @@ button.tile, .tilebtn { transition: background .15s, transform .1s; }
|
||||
:has() grenzt das Umbrechen auf genau die Zeilen ein, die eine Fussnote
|
||||
fuehren - alle anderen .row bleiben unveraendert einzeilig. */
|
||||
.row:has(.row-fussnote) { flex-wrap: wrap; }
|
||||
/* Sammelzeilen der Sicherheit-Ansicht (vSicherheit()): Kreis-Häkchen + Text
|
||||
+ optionaler Chevron statt dt/dd. Erbt Abstand/Trennlinie von .row, ersetzt
|
||||
aber dessen space-between-Layout und setzt die Button-Vorgaben zurück, wenn
|
||||
die Zeile klickbar ist (Türen und Klappen). */
|
||||
.sicherheitszeile {
|
||||
justify-content: flex-start;
|
||||
width: 100%;
|
||||
background: none;
|
||||
border: none;
|
||||
border-bottom: 1px solid var(--line);
|
||||
font: inherit;
|
||||
color: inherit;
|
||||
text-align: left;
|
||||
cursor: default;
|
||||
}
|
||||
button.sicherheitszeile { cursor: pointer; }
|
||||
button.sicherheitszeile:active { background: var(--tile-2); }
|
||||
.sicherheitsliste .sicherheitszeile:last-child { border-bottom: 0; }
|
||||
.sicherheitszeile-text { flex: 1; font-size: 14.5px; color: var(--fg); }
|
||||
.sicherheitszeile .chev { margin-left: auto; }
|
||||
.row-fussnote {
|
||||
flex: 1 0 100%;
|
||||
text-align: left;
|
||||
@@ -451,6 +471,12 @@ button.tile, .tilebtn { transition: background .15s, transform .1s; }
|
||||
.dot { width: 11px; height: 11px; border-radius: 50%; flex: 0 0 auto; background: var(--ok); display: inline-block; }
|
||||
.dot.warn { background: var(--warn); }
|
||||
.dot.bad { background: var(--bad); }
|
||||
/* Kreis-Häkchen statt einfarbigem Punkt - für die Sicherheit-Ansicht
|
||||
(vSicherheit()/vTuerenKlappen()), nach Nutzer-Vorlage: erfüllt/offen/
|
||||
unbekannt sofort am Symbol erkennbar, nicht nur an der Farbe. */
|
||||
.statuskreis { width: 22px; height: 22px; border-radius: 50%; flex: 0 0 auto; background: var(--ok); display: inline-flex; align-items: center; justify-content: center; }
|
||||
.statuskreis.warn { background: var(--warn); }
|
||||
.statuskreis.bad { background: var(--bad); }
|
||||
.status .t { font-size: 14px; color: var(--fg); }
|
||||
.status { transition: opacity .15s; }
|
||||
.status:active { opacity: .55; }
|
||||
|
||||
Reference in New Issue
Block a user