Termine ohne Gedaechtnis, Listen nach HIG, zwei zu schmale Felder (2026.9.2.13-.20)

TERMIN. Der Werkstatttermin wanderte bisher ins Fahrzeugprofil, stand als
Merkmal an der Karte und liess sich "verwerfen" - eine zweite Verwaltung neben
dem Kalender. Auf Ansage entfernt: er dient jetzt allein dem Kalendereintrag
"was, wann, bei welcher Werkstatt". Dabei aufgefallen: die App schrieb gar kein
LOCATION in die .ics, obwohl das Panel es seit jeher setzt.

Ohne Speicherung startete das Feld leer ("tt.mm.jjjj", so gemeldet). Es
schlaegt jetzt die Faelligkeit der gewaehlten Art vor, sonst heute - dafuer
liefert service.ts serviceKandidaten(). "Andere" ergaenzt die Auswahl.

BREITEN. Am laufenden Panel gemessen: die vier festen 132px-Datumsfelder
brauchen ab 140px, damit die letzte Ziffer nicht unter dem Kalendersymbol
liegt (jetzt 150px); die Art-Auswahl braucht 178px fuer
"Hauptuntersuchung" (jetzt 190px). In der App war nichts davon kaputt - eine
dort vorsorglich eingebaute Breite ist wieder entfernt.

LISTEN. Fahrten- und Tankliste verloren 58px an tote Breite: 22px Einrueckung
der Monatsebene plus 40px linkes Polster der Zeile. Auf dem Telefon brach
"Eichstaett -> Adelschlag" deshalb um. Apples Richtlinien gruppieren ueber
Abschnittskoepfe statt Einrueckung; die Zeilen stehen jetzt alle auf derselben
Kante (34 statt 96px), der Monat traegt Versalien und Sperrung und liest sich
als Kopf. Beschraenkt auf .liste/.dm-liste - anderswo ist das Polster gewollt.

BILDER. Die Draufsicht ist aus der Galerie genommen (nurStatus), gehoert aber
weiter in die Auswahl der Einstellungen: nur dort laesst sie sich hochladen.
Die Galerie schneidet Fotos nicht mehr an - die Frontansicht verlor unten die
Stossstange.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-02 16:36:25 +02:00
parent 38e7731a3d
commit d889353cbe
14 changed files with 363 additions and 76 deletions
+97
View File
@@ -8187,3 +8187,100 @@ Statistik**: y 2,76 bis 21,24. Ränder nachgemessen, nicht nur die Größe — d
Übersicht-Symbol vom selben Tag.
`fuel-station-l` (48er-Raster) wird nicht gebraucht: die Reiter zeichnen mit 21 bzw. 26px.
---
## BQ. Termine, Listen und was sich im laufenden Panel messen lässt (2026.9.2.13-.20)
Ein Stapel Meldungen des Eigentümers am Nachmittag des 02.09.2026. Der rote Faden: diesmal ließ
sich das meiste **am laufenden Panel messen** statt zu rechnen — der Browser dieser Sitzung hatte
die Testinstanz angemeldet offen, und über die Shadow-Roots von Home Assistant kommt man an jedes
Element (`getBBox()`, `getComputedStyle()`, Bildschirmfotos). Das ist der Weg, der in diesem Projekt
schon zweimal Größenfehler verhindert hätte; er steht hier, damit er nicht wieder vergessen wird.
### Der Werkstatttermin hatte ein Gedächtnis, das niemand wollte (.14)
Jedes eingetragene Datum wanderte ins Fahrzeugprofil (`service.vereinbart`), erschien als Merkmal
an der Terminkarte und ließ sich über einen eigenen Knopf „verwerfen" — eine **zweite
Terminverwaltung neben dem Kalender**, die auseinanderlief, sobald der Termin dort verschoben wurde.
Auf Ansage entfernt: kein Schreiben mehr (weder im Feld noch beim Export), kein Merkmal, kein
Verwerfen-Knopf. Der Termin hat jetzt genau einen Zweck — dem Kalender zu sagen, **was** wann und
bei **welcher Werkstatt**.
Dabei ist ein echter Mangel aufgefallen: die App schrieb **gar kein `LOCATION`** in die .ics. Der
Termin sagte „was" und „wann", aber nicht „wo", obwohl das Panel es seit jeher setzt. Jetzt tragen
beide Autohausname als Ort und Anschrift als Beschreibung.
### Und der Vorschlag, den ich dabei kaputt gemacht habe (.18)
Ohne Speicherung startete das Datumsfeld **leer** — auf dem Telefon als „tt.mm.jjjj" sichtbar, und
genau so gemeldet („Datums-Textfeld kaputt bei Hauptuntersuchung"; bei Ölwechsel und Inspektion
stand noch ein gespeicherter Termin drin). Der Fehler war meiner, aus demselben Nachmittag.
Jetzt schlägt das Feld die **Fälligkeit der gewählten Art** vor — dieselbe Zahl wie auf den Karten
darüber, derselbe Vorschlag wie im Panel; fehlt sie (Hauptuntersuchung ohne HU-Datum, „Andere"),
steht heute im Feld. Leer wird es nie. Dafür liefert `service.ts` jetzt `serviceKandidaten()`, alle
drei Arten mit ihrer Fälligkeit; `naechsterService()` nimmt davon weiterhin die früheste.
### Zwei Felder, die zu schmal waren — gemessen, nicht geschätzt (.17)
Im Panel standen vier Datumsfelder und die Art-Auswahl auf fest verdrahteten **132px**. Am
laufenden Panel nachgemessen (Audi Type 16px):
| | braucht | stand auf | jetzt |
|---|---|---|---|
| „24.07.2027" + Kalendersymbol | ab 140px frei | 132px | **150px** |
| „Hauptuntersuchung" + Chevron | 150,4 + 28 = 178px | 132px | **190px** |
Beim Datum lag die letzte Ziffer über dem Symbol (Probereihe 132/140/150/160/170/180 nebeneinander
eingesetzt und angesehen), bei der Auswahl stand „Hauptuntersuchur". Beide Zeilen passen auch auf
375px Telefonbreite.
**In der App war nichts davon kaputt** — dort sitzt kein festes Maß, und der Eigentümer hat am Gerät
gegengeprüft. Eine vorsorglich eingebaute Breite dort ist wieder entfernt worden: eine Änderung ohne
Befund ist keine Verbesserung.
### Die Fahrtenliste: 58px tote Breite (.19/.20)
Gemeldet mit Bildschirmfoto vom iPhone: „Eichstätt → Adelschlag" brach um. Gemessen, warum:
| | |
|---|---|
| 22px | Einrückung der Monatsebene (`.lvl2`) |
| 40px | linkes Polster jeder Zeile (`.leaf`/`.dm-blatt`) |
Zusammen 58px von rund 300px Kachelbreite, für einen Ortsnamen blieben ~150px.
**Apples Richtlinien gruppieren nicht über Einrückung, sondern über Abschnittsköpfe über die volle
Breite**; die Zeilen stehen alle auf derselben Kante. Genau so jetzt — beschränkt auf `.liste` /
`.dm-liste`, weil das linke Polster anderswo (Batteriewerte, Servicebuch, Zuletzt-Kachel) gewollt
ist. Nachgemessen auf 375px: Fahrtzeile von 96px auf **34px** eingerückt, der Ortsname steht
einzeilig.
Der Monat war danach 13px grau und die Zeile 16px schwarz — dazu die Frage des Eigentümers, ob das
so gehöre. Es gehört so (iOS macht Abschnittsköpfe kleiner als den Inhalt), aber die Liste wirkte
zweistufig. Der Monat trägt jetzt **11px, Versalien, 0,18em Sperrung** wie die übrigen Eyebrows —
drei erkennbare Stufen, ohne dass der Kopf Platz kostet. 11 statt 10px: die Untergrenze dieses
Projekts aus den Apple-Richtlinien.
### Kleinigkeiten aus demselben Stapel
- **„Andere"** in der Auswahl „Wofür" (.13). Im Panel etwas mehr als ein Listeneintrag: die Auswahl
entsteht dort aus `termine()`, also aus **fälligen** Terminen mit Ziel und Kilometerstand.
„Andere" ist keiner davon — dafür `terminAuswahl()`/`gewaehlterTermin()`, die beide Stellen
bedienen, die vorher dieselbe Zeile doppelt hatten.
- **Draufsicht nicht mehr in der Galerie** (.13): neues Kennzeichen `nurStatus` am Bildplatz. In der
Auswahl der Einstellungen bleibt sie — sie ist der einzige Weg, das Foto hochzuladen.
- **Die Galerie schneidet nicht mehr an** (.15): sie stand als letzte im festen 16:9-Kasten mit
`object-fit: cover`, die Frontansicht verlor unten die Stoßstange. Jetzt bestimmt das Bild die
Höhe, wie Übersicht-Szene und Einstellungs-Vorschau.
- **Zusatz „vereinbart"** am Wechseltermin entfernt (.16) — sein Schalter war am selben Tag von der
Räder-Seite verschwunden, das Feld blieb ungelesen im Profil zurück.
### Offen aus diesem Stapel
- **Teilen legt keinen Tankvorgang an** (gemeldet am Gerät). Noch nicht untersucht.
- **Kopieren/Einfügen klappt am iPhone nicht.**
- **Hochladen über einen eigenen HTTP-Endpunkt** statt über den Dienst: hebt die 3-MB-Grenze des
Panels auf (WebSocket, aiohttp-Vorgabe 4 MiB) und spart die Base64-Aufblähung. Gemessen: über
REST gehen 12 MB durch, über den WebSocket bricht die Verbindung ab 3,2 MB Rohbild wortlos ab.