Vorratsschrank - Mehrzeiliges Einfuegen zum schnellen Erfassen mehrerer Produkte #184
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#184
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 - Mehrzeiliges Einfuegen zum schnellen Erfassen mehrerer Produkte
As a Mitglied, das nach dem Grosseinkauf mehrere Produkte auf einmal in den Vorratsschrank eintraegt,
I want to eine mehrzeilige Liste von Produktnamen einfuegen/eintippen koennen (ein Name pro Zeile),
so that ich nicht jedes Produkt einzeln ueber das Eingabefeld hinzufuegen muss.
Kontext (verifiziert im Code): Die Einkaufsliste hat mehrzeiliges Einfuegen bereits seit #108 (SmartAddInput.tsx + MultilinePasteConfirmDialog.tsx, inkl. Bestaetigungsdialog aus #87) - der Vorratsschrank (PantryPage.tsx) hat dafuer aktuell keine Entsprechung; Produkte lassen sich dort nur einzeln ueber das normale Eingabefeld oder per Barcode-Scan hinzufuegen.
Acceptance criteria:
Out of scope for this story:
Open questions: (escalate to human if unanswered)
Claiming this for the current autonomous cycle. Plan: mirror the Shopping list multiline-paste pattern (SmartAddInput.tsx + MultilinePasteConfirmDialog.tsx from #108) onto PantryPage.tsx - reusing the existing single-product creation pipeline per line, no new backend command needed. Single-line input keeps current behavior unchanged.
Done. Implemented in
215d80b5.Scope: PantryPage.tsx product input now recognizes a multi-line paste (2+ non-blank lines) into an otherwise-empty field, showing the same confirmation dialog Shopping/Todo already use (#108), then creating one pantry product per line sequentially (with a "Line X of Y" progress indicator) through the exact same CreatePantryProductCommand pipeline the existing single-item add button already uses - quantity defaults to 1, category left unset, no smart matching/dedup (the pantry add box never had that, unlike Shopping SmartAddInput). A single-line paste/type is unaffected.
Tests: 5 new PantryPage.test.tsx cases (dialog appears on 2+ line paste, not intercepted when field already has text, Cancel creates nothing, sequential per-line creation with progress, single-line paste is not treated as a batch). Full frontend suite green (134 files / 1287 tests). Backend build green (0 errors); no backend changes needed for this story. Backend Testcontainers-based tests still blocked by this sandbox's standing Docker-unavailable limitation (confirmed via stack-trace grep, not a regression). Self-review + security-review skill: no findings (frontend-only, reuses an already-authorized existing command, no new attack surface).
Local review container could not be rebuilt this cycle - Docker daemon unreachable in this sandbox (
open //./pipe/dockerDesktopLinuxEngine), same standing limitation as prior cycles.