diff --git a/AGENTS.md b/AGENTS.md index 6645033..5056536 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11763,3 +11763,37 @@ den ersten Eintrag zurueck. Das Badge haengt an "RS 6" und war nie betroffen. Nachgemessen: zehn Eintraege, laengster "RS 3 Limousine" mit 115px bei 142px Platz - nichts wird mehr abgeschnitten. + +## CW. Zwei Update-Kacheln wurden eine (2026.9.5.16) + +Vorgabe des Eigentuemers: *"In Einstellungen gibt es zwei Update Kacheln. +Einmal fuer die Integration einmal fuer die App. Fuehre beides zusammen in eine +Kachel"* - und dazu: *"Der Bereich fuer die App soll im Panel einfach fehlen und +die Kachel kleiner sein"*. + +Die App hatte "App-Update" (das OTA-Buendel) und "Version" (die Integration) +nebeneinander. Es ist zweimal dieselbe Frage - was laeuft hier, und gibt es +etwas Neueres. Jetzt eine Kachel "Version" mit zwei Abschnitten. + +**Warum die Abschnitte benannt und getrennt sind:** ohne das staenden zwei +gleich aussehende "Update installieren"-Knoepfe untereinander, ohne dass man +ihnen ansieht, was sie erneuern. `.dm-abschnitt` traegt die Haarlinie am +ZWEITEN Abschnitt (Geschwister-Selektor), damit der erste keinen Strich direkt +unter der Kachelueberschrift bekommt. + +**Die Unterueberschrift "Integration" erscheint nur, wenn wirklich ein zweiter +Abschnitt folgt** (`otaMoeglich()`). Sonst staende eine Unterteilung ohne +zweiten Teil da. Damit sieht die Kachel ueberall dort, wo es kein OTA gibt - +Panel, App im Browser - genauso aus wie vorher. + +**Das Panel bleibt unangetastet.** Es kennt den App-Abschnitt gar nicht und +soll ihn nicht bekommen: die App traegt ihre Dateien fest gebuendelt und kann +veralten, das Panel laedt sie bei jedem Aufruf neu (siehe +`daten/appVersion.ts`). Eine geplante Abweichung, kein Versehen. + +Nachgemessen: Panel-Kachel 216px, App im Browser 203px, beide mit demselben +Inhalt und ohne App-Abschnitt; der Unterschied kommt aus der Kachelpolsterung. +Die Gestaltung des zweiten Abschnitts gegengeprueft, indem einer eingesetzt +wurde: Haarlinie 0.8px, 16px Abstand und 16px Polster darueber, Abschnittskopf +14px ueber seinem Inhalt. Der Abschnitt selbst ist nur in der nativen Huelle zu +sehen - im Browser ist `otaMoeglich()` falsch. diff --git a/companion-app/src/screens/Einstellungen.tsx b/companion-app/src/screens/Einstellungen.tsx index 6c134a0..5622914 100644 --- a/companion-app/src/screens/Einstellungen.tsx +++ b/companion-app/src/screens/Einstellungen.tsx @@ -730,48 +730,30 @@ export function Einstellungen({ - {otaMoeglich() && ( - - App-Update - {otaUpdateVerfuegbar && otaBuendel ? ( - <> - - } - /> -

- Lädt die Oberfläche neu und startet die App neu. Fahrzeugprofil, Fahrten und - Tankvorgänge sind davon nicht betroffen — die liegen in Home Assistant. -

-
- void otaAusloesen()} disabled={otaLaeuft}> - {otaLaeuft ? "Lade Update …" : "Update installieren"} - -
- {otaFehler &&

{otaFehler}

} - - ) : ( -

- {otaBuendel - ? `Diese App ist aktuell (${eigeneVersion() ?? "unbekannte Version"}).` - : "Der Server hat gerade kein Update-Bündel hinterlegt."} -

- )} -
- )} - - {/* Installierte Fassung und ihr Update stehen in EINER Kachel: es ist dieselbe Sache aus zwei Blickwinkeln, und zwei Kacheln nebeneinander zwangen zum Vergleichen zweier Zahlen ueber eine Kachelgrenze hinweg - (Vorgabe des Eigentuemers, 04.09.2026). */} + (Vorgabe des Eigentuemers, 04.09.2026). + + Seit dem 05.09.2026 gilt das auch fuer die App selbst: sie hatte eine + eigene Kachel "App-Update" daneben, obwohl es dieselbe Frage ist - + "was laeuft hier, und gibt es etwas Neueres". Zusammengelegt auf + Vorgabe des Eigentuemers. + + Die beiden Abschnitte sind BENANNT und durch eine Haarlinie getrennt. + Ohne das staenden zwei gleich aussehende "Update installieren"-Knoepfe + untereinander, ohne dass man ihnen ansieht, was sie erneuern. Das + Panel kennt nur den Integrationsteil - die App traegt ihre Dateien + fest gebuendelt, das Panel laedt sie bei jedem Aufruf neu. */} Version + +
+ {/* Nur wenn darunter wirklich ein zweiter Abschnitt folgt. Ohne den + staende "Integration" allein unter "Version" - eine Unterteilung + ohne zweiten Teil, genau wie im Panel, das den App-Abschnitt gar + nicht kennt. */} + {otaMoeglich() && Integration} {integrationUpdate.fehler}

} +
+ + {otaMoeglich() && ( +
+ App + + } + /> + {otaUpdateVerfuegbar && otaBuendel ? ( + <> + + } + /> +

+ Lädt die Oberfläche neu und startet die App neu. Fahrzeugprofil, Fahrten und + Tankvorgänge sind davon nicht betroffen — die liegen in Home Assistant. +

+
+ void otaAusloesen()} disabled={otaLaeuft}> + {otaLaeuft ? "Lade Update …" : "Update installieren"} + +
+ {otaFehler &&

{otaFehler}

} + + ) : ( +

+ {otaBuendel + ? "Diese App ist aktuell." + : "Der Server hat gerade kein Update-Bündel hinterlegt."} +

+ )} +
+ )}
{/* Debug-Mode: Zugaenge, Dongle und der letzte Datensatz des Geraets. diff --git a/companion-app/src/stile/screens.css b/companion-app/src/stile/screens.css index 934a22a..2f12e39 100644 --- a/companion-app/src/stile/screens.css +++ b/companion-app/src/stile/screens.css @@ -1653,6 +1653,29 @@ button.dm-listenzeile { einer Suche nach allen Speicherleisten des Projekts kam das QR-Blatt als Treffer heraus, obwohl es dort nichts zu speichern gibt (vom Eigentümer richtiggestellt). Eine Klasse soll eine Sache bedeuten. */ +/* Zwei benannte Abschnitte in EINER Kachel, durch eine Haarlinie getrennt. + + Gebraucht in "Version": dort stehen seit dem 05.09.2026 die Integration + und die App untereinander, jede mit eigenem Stand und eigenem + Update-Knopf. Ohne Benennung und Trennung staenden dort zwei gleich + aussehende "Update installieren"-Knoepfe, ohne dass man ihnen ansieht, + was sie erneuern. + + Die Linie sitzt am ZWEITEN Abschnitt (Geschwister-Selektor), damit der + erste keinen Strich direkt unter der Kachelueberschrift bekommt. */ +.dm-abschnitt + .dm-abschnitt { + margin-top: var(--sp-4); + padding-top: var(--sp-4); + border-top: 1px solid var(--line); +} + +/* Die Ueberschrift eines Abschnitts ist kein direktes Kind der Kachel, die + Regel .ads-tile > .ads-eyebrow:first-child greift hier also nicht. */ +.dm-abschnitt > .ads-eyebrow:first-child { + display: block; + margin-bottom: 14px; +} + .dm-knopfpaar { display: flex; align-items: center; diff --git a/custom_components/audi_dashboard/frontend/app/bundle.json b/custom_components/audi_dashboard/frontend/app/bundle.json index 521fbdf..9078cc5 100644 --- a/custom_components/audi_dashboard/frontend/app/bundle.json +++ b/custom_components/audi_dashboard/frontend/app/bundle.json @@ -1 +1 @@ -{"version":"2026.9.5.14","sha256":"d684e56da92c19722a2a64098806e6ac8aa8d9ee18b6e624dfe2a0c73a76d3b2","bytes":324512,"gebaut":"2026-09-05T08:58:40Z"} \ No newline at end of file +{"version":"2026.9.5.16","sha256":"0e0e8054be5aff66e649b872c00b809be6151b6e63e0e4d902342ed8d7b6b6c4","bytes":324571,"gebaut":"2026-09-05T09:19:12Z"} \ No newline at end of file diff --git a/custom_components/audi_dashboard/frontend/app/bundle.zip b/custom_components/audi_dashboard/frontend/app/bundle.zip index 820d08d..06d0a3c 100644 Binary files a/custom_components/audi_dashboard/frontend/app/bundle.zip and b/custom_components/audi_dashboard/frontend/app/bundle.zip differ diff --git a/custom_components/audi_dashboard/manifest.json b/custom_components/audi_dashboard/manifest.json index cf65aa2..6e4f3ae 100644 --- a/custom_components/audi_dashboard/manifest.json +++ b/custom_components/audi_dashboard/manifest.json @@ -1,7 +1,7 @@ { "domain": "audi_dashboard", "name": "Audi Dashboard", - "version": "2026.9.5.14", + "version": "2026.9.5.16", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": [