feat: Phase 2 Schritt 10 — Einkaufslisten-Modul
Backend: - GET /shopping — alle Listen mit item_total/item_checked Zähler - POST/PUT/DELETE /shopping/:listId — Listen-CRUD - GET /shopping/:listId/items — Artikel nach Supermarkt-Gang sortiert (Obst→Backwaren→Milch→Fleisch→Tiefkühl→Getränke→Haushalt→Drogerie→Sonstiges) Abgehakte innerhalb der Kategorie ans Ende - POST /shopping/:listId/items — Artikel hinzufügen - PATCH /shopping/items/:id — Artikel aktualisieren (abhaken, umbenennen) - DELETE /shopping/items/:id — Einzelartikel löschen - DELETE /shopping/:listId/items/checked — nur abgehakte löschen - GET /shopping/suggestions?q= — Autocomplete aus bisherigen Einträgen Frontend: - Multi-Listen-Tabs (horizontal scrollbar, Artikel-Zähler im Tab) - Quick-Add: Name + Menge + Kategorie-Dropdown in einer Zeile - Autocomplete-Dropdown mit Tastaturnavigation (↑↓ Enter Escape) - Optimistisches Toggle: Checkbox reagiert sofort, Rollback bei Fehler - "Abgehakt löschen"-Button erscheint dynamisch bei checked > 0 - Listen umbenennen/löschen direkt im Header - Kategorie-Icons (Lucide) in Gruppen-Überschriften Tests: 17/17 bestanden (71 gesamt) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
<link rel="stylesheet" href="/styles/login.css" />
|
||||
<link rel="stylesheet" href="/styles/dashboard.css" />
|
||||
<link rel="stylesheet" href="/styles/tasks.css" />
|
||||
<link rel="stylesheet" href="/styles/shopping.css" />
|
||||
|
||||
<!-- Lucide Icons (CDN) -->
|
||||
<script src="https://unpkg.com/lucide@latest/dist/umd/lucide.min.js"></script>
|
||||
|
||||
Reference in New Issue
Block a user