Tankstellen-Nadel, doppeltes Tanken-Symbol, Tankstellenname, packageClassList
Fuenf Meldungen des Eigentuemers, vier davon behoben: 1. Tankstellen-Nadel war bei 32 px ein dunkler Fleck (poi zeichnet nur einen Ring). Gefuellter Punkt in currentColor zwischen Silhouette und Symbol - die Geometrie stand im Pfad. Rot wurde ausdruecklich abgelehnt, die Umsetzung aendert keine Farbe. 2. Tanken-Symbol im Standort-Blatt wurde gefuellt UND umrandet, weil das CI-Symbol zusaetzlich stroke-Attribute mitbekam. Jetzt ueber ciSVG wie das Parkplatz-Symbol daneben; in der App dafuer imRaster an SymbolTanken (der 0,84-Faktor gilt nur in der Reiterleiste). 3. Tankstellenname: der Bestand hat zwei Bauformen - aeltere Belege tragen den Betreiber in station_name und die Anschrift daneben. Neu tankstelleTeile() liest beide Felder, entfernt Firmierungen, kuerzt Strassen und trennt die Hausnummer auch ohne Leerzeichen. Uebersicht: Marke, Strasse, Ort. Einzelbeleg: zwei Zeilen. adresseTeilen() hat keinen Aufrufer mehr und ist entfernt. 4. Zwischenablage und Kalendereintrag hatten denselben Grund: Capacitor 8 registriert nur, was in packageClassList steht, und cap sync traegt dort ausschliesslich npm-Pakete ein. Beide app-eigenen Plugins lagen im Programm und wurden nie registriert. ios-teilen-einrichten.mjs traegt sie jetzt nach, ios-signieren.sh bricht ab, wenn sie im fertigen .ipa fehlen. 5. Geteilter Beleg nur mit Datum und Uhrzeit bleibt offen - der Weg nutzt denselben belegLesen()-Pfad wie eine gewaehlte Datei, es fehlt der konkrete Beleg oder die Protokollzeile. tsc sauber, 246 Tests, vite build sauber, Panel als Modul geparst, audi_ha_test auf 2026.9.4.20 ohne Traceback. Panel und App liefern fuer die Tankstelle byteweise dasselbe.
This commit is contained in:
@@ -10574,3 +10574,155 @@ laeuft ja auf `.17` und bekommt `.19` erst, wenn die Instanz sie ausliefert. Der
|
||||
Weg bleibt: **erst die Integration auf der realen Instanz aktualisieren**
|
||||
(Einstellungen -> Version -> pruefen, installieren, neu starten), danach bietet
|
||||
die App den Schritt `.17` -> `.19` an, und der geht vorwaerts.
|
||||
|
||||
## CM. Fuenf Meldungen: die Nadel, zwei Symbole, der Tankstellenname - und der Grund, aus dem zwei eigene Plugins nie liefen (2026.9.4.20)
|
||||
|
||||
### 1. Die Tankstellen-Nadel war ein schwarzer Fleck
|
||||
|
||||
Gerendert und angesehen statt beurteilt: die Silhouette ist `#182634`, und das
|
||||
`poi`-Symbol darueber zeichnet nur einen duennen **Ring**. Bei echter
|
||||
Kartengroesse (32 px) verschwindet der Ring, uebrig bleibt eine dunkle Flaeche -
|
||||
waehrend die Fahrzeug-Nadel daneben durch das gefuellte Auto-Piktogramm sofort
|
||||
liest.
|
||||
|
||||
Vier Varianten nebeneinander gestellt (dunkel / Audi-Rot / weiss mit Kontur /
|
||||
weiss mit dunklem Punkt), jeweils gross und bei 32 px. **Rot vom Eigentuemer
|
||||
ausdruecklich abgelehnt** - am Code war zu dem Zeitpunkt nichts geaendert.
|
||||
|
||||
Umgesetzt ist die Variante, die **keine Farbe anfasst**: ein gefuellter Punkt in
|
||||
`currentColor` zwischen Silhouette und Symbol. Seine Geometrie steht im Pfad
|
||||
ohnehin (`poi-s`: 11.5/8.5 r3.5, `poi-l`: 23.5/17.5 r7.5) - erfunden ist daran
|
||||
nichts. Beide Codebasen.
|
||||
|
||||
### 2. Das Tanken-Symbol im Standort-Blatt wurde doppelt gezeichnet
|
||||
|
||||
Gemeldet als "dicker und dunkler als das Parkplatz-Icon". Der Grund steht im
|
||||
Markup: `ICONS.fuel` **ist** laengst das gefuellte CI-Symbol `fuel-station-s`,
|
||||
bekam an dieser einen Stelle aber zusaetzlich
|
||||
`stroke="currentColor" stroke-width="1.5"` mit - die Flaeche wurde also gefuellt
|
||||
UND umrandet. Exakt die Falle, die am 02.09.2026 schon `.profilbtn svg` mit dem
|
||||
Zahnrad hatte.
|
||||
|
||||
Jetzt derselbe Weg wie fuer `CI.parking` daneben (`ciSVG(...)`, ohne
|
||||
Strichattribute). Dazu die Groesse: gemessen fuellt `parking` das Raster mit
|
||||
23x23, `fuel-station-s` roh 19x22, mit dem 0,84-Faktor der Reiterleiste nur noch
|
||||
16,0x18,5. Neben dem randfuellenden Parkplatz-Symbol passt die **ungeskalierte**
|
||||
Fassung. In der App bekam `SymbolTanken` dafuer ein `imRaster` - der 0,84-Faktor
|
||||
ist die Kalibrierung fuer die Reiterleiste und gilt nur dort.
|
||||
|
||||
### 3. Tankstellenname: der Bestand hat zwei Bauformen
|
||||
|
||||
Gemeldet: im Beleg vom 10.11.2025 steht in der Uebersicht noch die Firmierung
|
||||
("...GmbH"). An den echten Datensaetzen nachgesehen - und die Ursache ist die
|
||||
Datenlage, nicht die Anzeige:
|
||||
|
||||
| | `station_name` | `station_address` |
|
||||
|---|---|---|
|
||||
| bis 2025 | `TC Sengül GmbH` (der **Betreiber**) | `Nürnberger Str.74, 91522 Ansbach` |
|
||||
| ab 08.2026 | `Shell, Pascalstr. 8, Ingolstadt` | `None` |
|
||||
|
||||
Die Markenerkennung lief nur ueber `station_name`. Bei den aelteren Belegen
|
||||
steht die Marke dort gar nicht - also blieb die Firmierung stehen, waehrend die
|
||||
Anschrift daneben ungenutzt blieb.
|
||||
|
||||
Neu `tankstelleTeile()` (beide Codebasen, wortgleich): liest **beide** Felder,
|
||||
zerlegt in Marke / Strasse / Hausnummer / Postleitzahl / Ort. Firmierungen
|
||||
(GmbH, mbH, OHG, KG, AG, e. K., Inh., & Co) fallen heraus, Strassen werden
|
||||
gekuerzt (`Nürnberger Straße` wird `Nürnberger Str.`), und die Hausnummer wird
|
||||
auch ohne Leerzeichen davor abgetrennt - so drucken die Kassen es (`Str.74`).
|
||||
|
||||
Daraus die beiden vom Eigentuemer verlangten Formen:
|
||||
|
||||
| Beleg | Uebersicht | Einzelbeleg |
|
||||
|---|---|---|
|
||||
| `TC Sengül GmbH` + Anschrift | `Nürnberger Str., Ansbach` | `Nürnberger Str. 74` / `91522 Ansbach` |
|
||||
| `Shell, Pascalstr. 8, Ingolstadt` | `Shell, Pascalstr., Ingolstadt` | `Shell, Pascalstr. 8` / `Ingolstadt` |
|
||||
| `Shell, SÖLDEN` | `Shell, SÖLDEN` | `Shell` / `SÖLDEN` |
|
||||
|
||||
Geschrieben wie eine Anschrift: das Komma trennt nur die Marke ab, zwischen
|
||||
Strasse und Nummer und zwischen Postleitzahl und Ort steht keins.
|
||||
|
||||
**Ein Rueckfall bleibt bewusst:** ergibt die Zerlegung gar nichts - nur eine
|
||||
Firmierung, keine Anschrift -, steht weiter der rohe Name da. Ihn dann
|
||||
wegzulassen hiesse, eine bekannte Tankstelle "unbekannt" zu nennen.
|
||||
|
||||
`adresseTeilen()` hat damit keinen Aufrufer mehr und ist in beiden Codebasen
|
||||
entfernt (samt seiner Tests).
|
||||
|
||||
### 4. Zwei eigene Plugins waren im Programm - und trotzdem tot
|
||||
|
||||
Gemeldet: die Zwischenablage meldet "die App muss erst aktualisiert werden",
|
||||
obwohl frisch installiert. Und, kurz darauf: der Kalendereintrag erzeugt weiter
|
||||
nur eine ics-Datei.
|
||||
|
||||
**Beides derselbe Grund**, gefunden durch Lesen der Capacitor-Quellen statt
|
||||
durch Vermuten. `CapacitorBridge.swift`, `registerPlugins()` liest
|
||||
`packageClassList` aus der `capacitor.config.json` des Buendels und loest jeden
|
||||
Eintrag ueber `NSClassFromString` auf.
|
||||
|
||||
**Capacitor 8 sucht Plugin-Klassen NICHT im Programm.** Registriert wird
|
||||
ausschliesslich, was in dieser Liste steht. Und die erzeugt `cap sync` aus den
|
||||
installierten **npm-Paketen** - app-eigene Plugins sind keine. In der
|
||||
ausgelieferten `.ipa` nachgesehen, dort stehen genau sechs Fremd-Plugins:
|
||||
SecureStorage, AppPlugin, FilesystemPlugin, PreferencesPlugin, SharePlugin,
|
||||
CapacitorUpdaterPlugin.
|
||||
|
||||
`BelegZwischenablagePlugin` und `KalenderTerminPlugin` fehlen - beide liegen
|
||||
nachweislich im Programm (5 Treffer im Binaerprogramm), werden aber nie
|
||||
registriert. Folgen, beide gemeldet:
|
||||
|
||||
* `Capacitor.isPluginAvailable("BelegZwischenablage")` ist `false` - daher die
|
||||
Meldung ueber die angeblich noetige Aktualisierung.
|
||||
* `KalenderTermin` scheitert mit `UNIMPLEMENTED`, der Rueckfall auf Datei plus
|
||||
Teilen-Blatt greift, und der kann den Kalender **prinzipiell nie erreichen**
|
||||
(Abschnitt BS). Daher "nur eine ics-Datei, kein Eintrag".
|
||||
|
||||
`scripts/ios-teilen-einrichten.mjs` traegt die Klassen jetzt nach jedem
|
||||
`cap sync` in `ios/App/App/capacitor.config.json` nach. Die Namen liest es aus
|
||||
den Swift-Dateien selbst (der objc-Name), damit sie nicht an zwei Stellen
|
||||
gepflegt werden; der Schritt ist idempotent (zweiter Lauf ergaenzt 0 Eintraege,
|
||||
geprueft).
|
||||
|
||||
Dazu ein **Waechter am fertigen `.ipa`**: fehlt eine der Klassen in
|
||||
`packageClassList`, bricht `ios-signieren.sh` ab. Gegen die ausgelieferte
|
||||
Fassung geprueft - er schlaegt dort korrekt an. Dieselbe Linie wie bei der
|
||||
`CFBundleVersion` (Abschnitt CD).
|
||||
|
||||
Die Fehlermeldung in `zwischenablage.ts` nannte eine **geratene Ursache** ("kommt
|
||||
nur mit einer neu installierten App") - die war nachweislich falsch, der
|
||||
Eigentuemer hatte frisch installiert. Sie nennt jetzt nur noch die Tatsache.
|
||||
|
||||
**Merkposten, zum zweiten Mal nach dem Preferences-Plugin (Abschnitt BR):** bei
|
||||
einem Plugin, das eine Systemgrenze ueberbrueckt, den Quelltext der Bruecke
|
||||
lesen, nicht die Dokumentation.
|
||||
|
||||
### 5. Geteilter Beleg: nur Datum und Uhrzeit - noch offen
|
||||
|
||||
Der Weg selbst ist geprueft und in Ordnung: ein ueber das Teilen-Blatt
|
||||
hereingereichter Beleg laeuft durch **exakt denselben** `belegLesen()`-Pfad wie
|
||||
eine von Hand gewaehlte Datei (`Tanken.tsx`), inklusive Dateiname aus dem Pfad.
|
||||
Es gibt dort keinen zweiten, aermeren Zweig.
|
||||
|
||||
Damit bleibt die Auswertung selbst, und die haengt am konkreten PDF - das hier
|
||||
nicht vorliegt. **Nicht geraten**: um es zu entscheiden, braucht es den Beleg
|
||||
(unter `tests/belegparser/belege/`, das ist gitignored) oder die Protokollzeile
|
||||
der Instanz zu diesem Hochladen.
|
||||
|
||||
### Verifiziert
|
||||
|
||||
`tsc --noEmit` sauber, **246 Tests** (von 244; 6 neue fuer die Zerlegung an den
|
||||
echten Belegen, eine Erwartung bewusst geaendert), `vite build` sauber, Panel als
|
||||
**Modul** geparst, `node --check` und `bash -n` auf beiden Skripten,
|
||||
`audi_ha_test` auf `2026.9.4.20` sauber gestartet, kein Traceback.
|
||||
|
||||
**Panel und App liefern fuer die Tankstelle byteweise dasselbe** - die
|
||||
Panel-Funktionen dafuer aus dem Buendel geschnitten und in Node gegen dieselben
|
||||
sieben Faelle laufen lassen, nicht nachgebaut.
|
||||
|
||||
**Live in der App**: in der Tankliste steht nirgends mehr "GmbH", der gemeldete
|
||||
Beleg liest sich `Nürnberger Str., Ansbach`, und der Einzelbeleg zeigt
|
||||
`Nürnberger Str. 74` / `91522 Ansbach`.
|
||||
|
||||
**Nicht geprueft, weil es ohne Mac nicht geht:** dass die Registrierung auf dem
|
||||
Geraet greift. Das zeigt erst der naechste Xcode-Lauf - und der bricht jetzt ab,
|
||||
wenn sie fehlt.
|
||||
|
||||
Reference in New Issue
Block a user