Files
MindSift/Doku/modules/lists.md
T
sandrodachandClaude Opus 5.5 73fad1c5db
MindSift CI & Docker Release / Build, Test in Container & Push (push) Successful in 2m36s
feat(tasks): assign tasks in shared lists, unified people search, list avatars
- Tasks in shared task lists can be assigned to one or more people with access
  (task_assignees); assignments are pruned whenever access is lost
- UserAutocomplete: type-to-search everywhere, nothing before typing, max 3 results,
  first match preselected
- Task list and list tabs: avatar stack of members and round monochrome counter
- Shared list items remember who added them (list_items.created_by)
- Doku/ui-patterns.md documents the shared UI patterns

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 20:26:55 +01:00

1.9 KiB

Modul: Geteilte Listen

Einkaufs-, Pack- und Checklisten für gemeinsames Arbeiten. Code: SharedListsView.tsx; Backend: *List*-Handler in server.go, Store.CreateList und Verwandte.

Datenmodell

  • lists: Eigentümer, title, icon, list_type (shopping, checklist, vacation).
  • list_items: content, category, quantity, is_completed, completed_by(_name), created_by, sort_order.
  • list_shares: Ziel (Benutzer oder Gruppe) und Rolle editor oder viewer.

Funktionen

  • Kategorien per Hashtag: Hafermilch #Kühlregal landet in der Kategorie „Kühlregal“. Kategorien werden alphabetisch als Abschnitte angezeigt; die Eingabe schlägt vorhandene Hashtags vor.
  • Menge: Feld quantity (z. B. 2x, 500g).
  • Drag & Drop ordnet Einträge um; in eine andere Kategorie gezogen, wird der Hashtag im Text angepasst (items/reorder mit category und content).
  • Abhaken speichert, wer und wann; Erledigte stehen in einem eigenen Bereich und lassen sich per „Erledigte entfernen“ löschen (clear-completed).
  • Freigabe über den Dialog UnifiedShareModal (Bearbeiten oder Nur Lesen). Ein Leser sieht Änderungen live, ändert aber nichts.
  • Live-Sync: Ereignisse ITEM_* und LIST_* im Raum der Liste (websocket.md). Abhaken erscheint bei allen Beteiligten sofort.
  • Wer hat's hinzugefügt: In geteilten Listen zeigt jeder Eintrag ein kleines Profilbild der Person, die ihn angelegt hat (createdBy, createdByName). Einträge von vor dieser Funktion haben keinen Autor und zeigen nichts.
  • Tabs zeigen offene Einträge als runden Zähler und die Personen mit Zugriff als Profilbild-Stapel (ui-patterns.md); die API liefert sie je Liste als members.
  • Aus der Triage lassen sich Gedanken direkt als Eintrag in eine Liste übernehmen.