Vorratsschrank - Scan-Station fuer durchgaengiges Scannen mit Hardware-Scanner #171
Labels
No labels
priority/could
priority/must
priority/should
priority/wont
status/blocked
status/claimed
status/done-migrated
type/bug
type/feature
type/infra
type/tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
robert/todo#171
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Story: Vorratsschrank - Scan-Station
As a Nutzer, der einen ganzen Einkauf auf einmal in den Vorratsschrank einsortiert (oder wieder entnimmt),
I want to eine dedizierte Seite, die dauerhaft scan-bereit bleibt und einen an einen Hardware-Barcode-Scanner (HID-Tastatur-Emulation, z. B. Inateck BCST-55) angeschlossenen Ablauf unterstuetzt,
so that ich nicht nach jedem einzelnen Scan wieder in ein Modal klicken oder den Modus manuell umschalten muss.
Background
Der bestehende
ScanPantryProductBarcodeCommand(#94/#104) wird bereits vonPantryBarcodeScanner.tsxs Kamera-Modal genutzt. Diese Story ergaenzt einen zweiten Einstiegspunkt fuer den gleichen Command: eine eigene Route/pantry/:pantryId/scan, erreichbar ueber einen neuen Menuepunkt in der Vorratsschrank-Kopfzeile.Acceptance criteria:
/pantry/:pantryId/scanmit eigener SeitePantryScanStationPage, erreichbar ueber einen neuen Menuepunkt inPantryPages Kopfzeilen-Menue.Out of scope for this story:
Open questions: Keine.
Claiming this. Implementation already exists locally (PantryScanStationPage + route + i18n), built on the existing ScanPantryProductBarcodeCommand (#94/#104). Verifying build/tests, self-review, then committing to master.
Merged and pushed to master (commit
1b8468c).Scope: new
PantryScanStationPageat route/pantry/:pantryId/scan, reachable via a new menu item in the pantry header. Full-page, continuously scan-ready UI for a hardware HID-keyboard barcode scanner (e.g. Inateck BCST-55), as a second entry point alongside the existing camera-scan modal (both stay available). Reuses the existingScanPantryProductBarcodeCommandunchanged - no backend changes were needed. Two printed digit-only control barcodes (999000001/999000002) switch check-in/check-out mode locally, no API call. Unknown-barcode flow reusesUnknownProductNameEntryfor the same Open-Food-Facts-suggestion-or-manual-name flow as the existing modal. A short Web Audio beep confirms each scan (distinct pitch for check-in/out/error) and a client-side recent-scans log (last 20) is shown below the input. Offline-guarded like the existing scan modal.Tests:
PantryScanStationPage.test.tsxcovers the default check-in scan, control-barcode mode switching, the unknown-barcode name-prompt round trip, and the offline guard.Note: this session found the repo already had this feature mostly built but uncommitted from an earlier interactive session, plus a concurrent autonomous-loop run landed on the same working copy mid-cycle (#166 Masterpackliste activity feed + two independent test fixes + a duplicate docs change) - reconciled via merge/rebase, verified no content was lost (tree-diffed against the pre-rebase merge commit), full backend (1002 tests) and frontend (1209 tests) suites green post-reconciliation.
Security: reviewed via the security-review skill - no findings (backend command/authorization unchanged, no dangerouslySetInnerHTML, control barcodes are pure local UI state with no server round-trip).