OCR-Rohtext additiv zurückgeben, je Eintrag speichern und anzeigen

recognize() (pipeline.js) liefert zusätzlich den ungefilterten OCR-Rohtext
(rawText) zurück - leer, wenn keine Texterkennung lief. Rein additiv: die
Stapelzuordnung (session.js/spec.js, unangetastet) stützt sich weiterhin
ausschließlich auf die daraus abgeleiteten, verstandenen Spec-Felder.

main.js hängt den Rohtext nach dem Buchen als zusätzliche Eigenschaft an den
Eintrag (analog zu den bereits vorhandenen Barcode-Inhalten je Eintrag).
storage.js sichert/prüft/stellt entry.rawText nach demselben optionalen
Muster wie entry.codes wieder her - ein gesicherter Stand ohne dieses Feld
wird nicht verworfen.

In Funktion "Text erkennen" bleibt die Treffer-Rückmeldung jetzt stehen, bis
der Nutzer sie wegtippt, und zeigt den vollen erkannten Text (lesbar über
dasselbe Scroll-Muster wie die übrigen Vollbild-Overlays); in den beiden
Barcode-Funktionen bleibt es beim automatischen Ausblenden. Das
zurückgegebene Versprechen von showResult löst in jedem Fall - Zeitgeber,
Wegtippen, verdrängende neue Rückmeldung - genau einmal ein, damit die
Bedienung nie dauerhaft gesperrt bleibt. Die Sitzungsliste zeigt den Rohtext
zusätzlich je Eintrag zum Nachlesen.

Tests (pipeline.test.js, storage.test.js): rawText nur bei tatsächlich
gelaufener Texterkennung, unterschiedlicher Rohtext beeinflusst die
Stapelzuordnung nachweislich nicht, Rohtext übersteht Sichern/Laden inkl.
Abwärtskompatibilität zu einem Stand ohne dieses Feld.
This commit is contained in:
2026-07-29 15:19:13 +02:00
parent 1c10c68053
commit b903b1c7aa
7 changed files with 266 additions and 22 deletions
+15
View File
@@ -125,6 +125,21 @@ body {
.overlay .detail { font-size: 20px; line-height: 1.5; }
.overlay .pn { font-size: 15px; opacity: 0.85; word-break: break-all; }
/* Voller OCR-Rohtext in der wartenden Rueckmeldung (Funktion "Text
erkennen", siehe result-overlay.js) - linksbuendig und mit Zeilenumbruch,
damit ein langer Etikettentext lesbar bleibt statt einer einzelnen,
abgeschnittenen Zeile. Waechst nicht aus dem Bildschirm heraus, weil
`.overlay` selbst scrollbar ist (overflow-y: auto, siehe oben). */
.overlay .raw-text {
font-size: 16px;
line-height: 1.5;
text-align: left;
white-space: pre-wrap;
overflow-wrap: break-word;
max-width: 420px;
width: 100%;
}
.choices { display: grid; gap: 12px; width: 100%; max-width: 420px; }
.choices button { min-height: 64px; font-size: 20px; }