From ff9aaeb3384433acfdaf78ec21be5249cd836ce7 Mon Sep 17 00:00:00 2001 From: Tobi G Date: Fri, 28 Aug 2026 11:19:28 +0200 Subject: [PATCH] =?UTF-8?q?Setup-Men=C3=BC:=20runde=20Klammern=20aus=20Fel?= =?UTF-8?q?d-Labels=20entfernt,=20Popup=20verbreitert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - FELDER-Katalog: "(Datum)"/"(Restkilometer)"/"(Liter)"/"(Knopf)"/"(Fahrertür)" aus sieben Labels entfernt - die Unterscheidung übernimmt bereits das [Einheit]-Label neben der Überschrift (feldEinheitAnzeige()). - .setup-popup auf max-width:760px verbreitert (eigener Wert, getrennt von .sdpopup/.sheet/.beleg-popup), damit lange Rohsensornamen nicht mehr umbrechen müssen. Co-Authored-By: Claude Sonnet 5 --- AGENTS.md | 29 +++++++++++++++++++ .../audi_dashboard/einstellungen.py | 14 ++++----- .../frontend/audi-dashboard-ios.css | 8 ++++- .../audi_dashboard/manifest.json | 2 +- 4 files changed, 44 insertions(+), 9 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 168de7c..23b8cc5 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4315,6 +4315,35 @@ clean via log; all three fixes re-verified live in the browser (Tanken form scre of `-98` and the shrunk `Kilometerstand`/`Getankte Liter` fields; Setup candidate-list device_class check above). +**`.10`: the owner's "round collum" report was about something else entirely** - not the ellipsis (already +fixed and confirmed gone at `.9`), but the parenthetical suffixes on seven Setup field labels +("Nächster Ölwechsel **(Datum)**", "Tankvolumen **(Liter)**", "Türschloss **(Fahrertür)**", ...) - "remove +alle words in round collum for Sensors". Stripped the `(...)` suffix from all seven `FELDER` labels in +`einstellungen.py` (`TANK_LITER_SENSOR`, `REFRESH_BUTTON`, `TUERSCHLOSS_SENSOR`, +`NAECHSTER_OELWECHSEL_SENSOR`/`OELWECHSEL_STRECKE_SENSOR`, `NAECHSTE_INSPEKTION_SENSOR`/ +`INSPEKTION_STRECKE_SENSOR`). Safe to do without losing the Datum-vs-Restkilometer distinction the +parenthetical used to carry: the `.7`/`.8` work earlier this same round already added a `[Datum]`/`[km]` +unit label next to every headline (`feldEinheitAnzeige()`) - that bracket now carries the disambiguation +the round-bracket suffix used to, so "Nächster Ölwechsel" now shows as two rows differing only by +`[Datum]` vs `[km]`, same as every other field pair in the catalog. + +**Also `.10`: "Make the Popup wider because of the long Name"** - the owner had manually mapped +`TANK_DISTANZ_SENSOR` to `calculated_distance_covered_after_the_latest_refueling` (55 characters), which +the `.setup-popup`'s existing desktop cap (`max-width:560px`, from the 2026-08-13 design audit) had too +little room for even after the `.8` ellipsis fix let it wrap. Widened `.setup-popup` specifically to +`max-width:760px` in the `@container (min-width:860px)` block (`audi-dashboard-ios.css`) - split out of +the shared `.sdpopup,.sheet,.beleg-popup,.setup-popup` selector so only Setup (the one popup that shows +raw, potentially long sensor identifiers) gets the wider cap; the others are unaffected. Verified live at +a real 1400px viewport (not the browser tool's `desktop` preset, which stays narrow - same lesson noted +in section N): `getBoundingClientRect()`/`getClientRects()` on the actual rendered hint span confirmed +the popup measures 760px and the full 55-character name now renders on a single, unclipped line +(`scrollWidth === clientWidth`, `lineCount: 1`) instead of wrapping or overflowing. + +Verified: `py_compile` clean on `einstellungen.py` (inside `audi_ha_test`, `MSYS_NO_PATHCONV=1` needed for +`docker cp`/`docker exec` on this machine's Git Bash - plain paths were silently mis-translated to a +Windows path once, worth remembering for future sessions), manifest bumped to `2026.8.28.10`, +`audi_ha_test` restarted and confirmed clean via log, both fixes confirmed live in the browser as above. + Verified live in `audi_ha_test` at every step (`.6` then `.7`), each time reading the actual rendered Setup popup fresh after a real restart (not a stale tab - confirmed via `performance.getEntriesByType('resource')` showing the new `?v=` served with a nonzero transfer size each time). Final state (`.7`), all 20 single-value diff --git a/custom_components/audi_dashboard/einstellungen.py b/custom_components/audi_dashboard/einstellungen.py index bf51b92..eb75b50 100644 --- a/custom_components/audi_dashboard/einstellungen.py +++ b/custom_components/audi_dashboard/einstellungen.py @@ -168,7 +168,7 @@ FELDER: list[dict] = [ "hinweis": "Füllstand in Prozent - für die automatische Tankerkennung.", "domains": ["sensor"], "device_classes": [], "units": ["%"], "liste": False, "pflicht": False, "stichworte": ["tank", "fuel", "kraftstoff", "füllstand", "level"]}, - {"key": "TANK_LITER_SENSOR", "label": "Tankvolumen (Liter)", "gruppe": "fahrterkennung", + {"key": "TANK_LITER_SENSOR", "label": "Tankvolumen", "gruppe": "fahrterkennung", "hinweis": "Optional, vom CAN statt aus dem Prozentwert umgerechnet - macht die automatische " "Tankerkennung genauer und liefert eine Vorbelegung für die getankte Menge.", "domains": ["sensor"], "device_classes": ["volume"], "units": ["L", "l"], "liste": False, "pflicht": False, @@ -191,7 +191,7 @@ FELDER: list[dict] = [ "Temperaturwert je Tag.", "domains": ["sensor"], "device_classes": ["temperature"], "units": ["°C", "°F"], "liste": False, "pflicht": False, "stichworte": ["außentemperatur", "aussentemperatur", "ambient", "temperatur", "temperature"]}, - {"key": "REFRESH_BUTTON", "label": "Sofort-Aktualisierung (Knopf)", "gruppe": "uebersicht", + {"key": "REFRESH_BUTTON", "label": "Sofort-Aktualisierung", "gruppe": "uebersicht", "hinweis": "Der von der Integration bereitgestellte Knopf für \"Ziehen zum Aktualisieren\".", "domains": ["button"], "device_classes": [], "units": [], "liste": False, "pflicht": False, "stichworte": ["refresh", "aktualisieren", "update", "abrufen", "poll"]}, @@ -211,7 +211,7 @@ FELDER: list[dict] = [ "hinweis": "\"aus\"/off = zu.", "domains": ["binary_sensor"], "device_classes": ["door", "opening"], "units": [], "liste": False, "pflicht": False, "stichworte": ["haube", "hood", "bonnet", "motorhaube"]}, - {"key": "TUERSCHLOSS_SENSOR", "label": "Türschloss (Fahrertür)", "gruppe": "sicherheit", + {"key": "TUERSCHLOSS_SENSOR", "label": "Türschloss", "gruppe": "sicherheit", "hinweis": "\"aus\"/off = verriegelt. Die Zentralverriegelung schließt alle Türen gemeinsam - " "die Fahrertür genügt für \"Fahrzeug verriegelt\".", "domains": ["binary_sensor"], "device_classes": ["lock"], "units": [], "liste": False, @@ -224,19 +224,19 @@ FELDER: list[dict] = [ "hinweis": "\"aus\"/off = kein Licht.", "domains": ["binary_sensor"], "device_classes": ["light"], "units": [], "liste": False, "pflicht": False, "stichworte": ["licht", "standlicht", "light", "parking lights"]}, - {"key": "NAECHSTER_OELWECHSEL_SENSOR", "label": "Nächster Ölwechsel (Datum)", "gruppe": "uebersicht", + {"key": "NAECHSTER_OELWECHSEL_SENSOR", "label": "Nächster Ölwechsel", "gruppe": "uebersicht", "hinweis": "Vom Fahrzeug selbst gemeldete Fälligkeit, ergänzt die App-eigene Servicebuch-Prognose.", "domains": ["sensor"], "device_classes": ["date", "timestamp"], "units": [], "liste": False, "pflicht": False, "stichworte": ["ölwechsel", "oil", "service", "change"]}, - {"key": "OELWECHSEL_STRECKE_SENSOR", "label": "Nächster Ölwechsel (Restkilometer)", "gruppe": "uebersicht", + {"key": "OELWECHSEL_STRECKE_SENSOR", "label": "Nächster Ölwechsel", "gruppe": "uebersicht", "hinweis": "Meldet die Integration oft als negativen Countdown - die App zeigt nur den Betrag.", "domains": ["sensor"], "device_classes": ["distance"], "units": ["km", "mi"], "liste": False, "pflicht": False, "stichworte": ["ölwechsel", "oil", "distance", "strecke"]}, - {"key": "NAECHSTE_INSPEKTION_SENSOR", "label": "Nächste Inspektion (Datum)", "gruppe": "uebersicht", + {"key": "NAECHSTE_INSPEKTION_SENSOR", "label": "Nächste Inspektion", "gruppe": "uebersicht", "hinweis": "Vom Fahrzeug selbst gemeldete Fälligkeit.", "domains": ["sensor"], "device_classes": ["date", "timestamp"], "units": [], "liste": False, "pflicht": False, "stichworte": ["inspektion", "inspection", "service"]}, - {"key": "INSPEKTION_STRECKE_SENSOR", "label": "Nächste Inspektion (Restkilometer)", "gruppe": "uebersicht", + {"key": "INSPEKTION_STRECKE_SENSOR", "label": "Nächste Inspektion", "gruppe": "uebersicht", "hinweis": "Meldet die Integration oft als negativen Countdown - die App zeigt nur den Betrag.", "domains": ["sensor"], "device_classes": ["distance"], "units": ["km", "mi"], "liste": False, "pflicht": False, "stichworte": ["inspektion", "inspection", "distance", "strecke"]}, diff --git a/custom_components/audi_dashboard/frontend/audi-dashboard-ios.css b/custom_components/audi_dashboard/frontend/audi-dashboard-ios.css index 5af8d22..e3b1094 100644 --- a/custom_components/audi_dashboard/frontend/audi-dashboard-ios.css +++ b/custom_components/audi_dashboard/frontend/audi-dashboard-ios.css @@ -332,7 +332,13 @@ main#view{--seitenrand:16px;padding:0 var(--seitenrand) 30px;scroll-behavior:smo ruhigen Karte. max-width + margin:auto zentriert sie innerhalb des bestehenden left/right-Abstands, ohne die transform-basierte Einblend-Animation dieser Elemente zu beruehren. */ - .setup-popup,.sdpopup,.sheet,.beleg-popup{max-width:560px;margin-left:auto;margin-right:auto} + .sdpopup,.sheet,.beleg-popup{max-width:560px;margin-left:auto;margin-right:auto} + /* .setup-popup breiter als die übrigen Popups: die Sensorkennung neben der + Feld-Überschrift (entitaetIdKurz()) kann ein echter Rohsensorname von + Herstellerseite sein, teils 40-60 Zeichen lang + ("calculated_distance_covered_after_the_latest_refueling") - bei 560px + wäre das mehrzeiliges Umbrechen auf fast jeder Zeile. */ + .setup-popup{max-width:760px;margin-left:auto;margin-right:auto} .standortmenu{max-width:640px;margin-left:auto;margin-right:auto} /* Batteriespannungs-Diagramm: die Hoehe bleibt bewusst bei den festen 170px diff --git a/custom_components/audi_dashboard/manifest.json b/custom_components/audi_dashboard/manifest.json index 46260c4..619511d 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.8.28.9", + "version": "2026.8.28.10", "documentation": "https://gitea.nothaft.cloud/paul/audi-app/src/branch/main/README.md", "issue_tracker": "https://gitea.nothaft.cloud/paul/audi-app/issues", "codeowners": ["@paul"],