Aufgabenübersicht als Kern-Block (Seite + Unterseiten) #154
Labels
No Label
area:auth
area:docs
area:export
area:ops
area:storage
area:supply-chain
auth
backend
blocked
collab
deployment
docs
effort:L
effort:M
effort:S
frontend
plugins
qa
vs-nfd
vs-nfd:blocker
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: stwaidele/dorfteich#154
Loading…
Reference in New Issue
Block a user
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?
Ziel
Ein Block sammelt alle Aufgabenlisten-Zeilen der aktuellen Seite und aller untergeordneten Seiten und zeigt sie als Tabelle: Aufgabentext, erwähnte Nutzer, Start-/Zieldatum, Quellseite. Abhaken in der Übersicht synchronisiert den Zustand auf die Quellseite.
Architektur-Entscheidung: Kern-Feature (Block-Node analog Transklusion), NICHT Plugin — die Plugin-Sandbox hat bewusst keinen Fremdseiten-Write und kein parentId; der Rückschreibpfad läuft ohnehin über den Collab-Server. Die neuen Endpoints können später bei Bedarf als Plugin-Capability exponiert werden.
Abhängigkeiten: setzt #150 (@-Mentions, Spalte Erwähnte), #152 (Datums-Marker, Spalten Start/Ziel) und #153 (Stabile Task-IDs + Toggle-Rückschreibpfad) voraus.
Umsetzungsskizze
task_overview(Blaupausetransclusion,schema.ts:265-291) + Markdown-/HTML-Serialisierung; Einfüge-UI analog Transklusion.page_tasks (page_id, task_id, text, checked, position, mentioned_user_ids, start_date, due_date)(DB-Migration), geschrieben beim Persistieren inapps/collab/src/persistence.ts(Musterpage_links) undapps/api/src/pages/yjs-content.ts.GET /read/:pond/:slug/tasks?subtree=1(nebenread-content.controller.ts): Unterbaum per rekursiver CTE überPage.parentId; je QuellseitecanAccessPage-Filter (unlesbare Seiten fallen komplett raus — Muster Transklusions-Expansion).apps/web/src/editor/nodes/task-overview.tsx: Tabelle mit den vier Spalten, Quellseite verlinkt; Checkbox → Toggle-Endpoint (optimistisch + Refetch); ID-lose Altzeilen read-only mit Hinweis („Seite einmal im Editor öffnen").Akzeptanzkriterien
Bewusst nicht enthalten
Plugin-Capabilities, Filter/Sortierung/Gruppierung, teichübergreifende Aggregation, Live-Push in die Übersicht.
Umgesetzt in PR #158 (
e164370): Block-Atom task_overview (Fence dorfteich-tasks). ABWEICHUNG zur Skizze: KEINE abgeleitete page_tasks-Tabelle — die Sammlung wird zur Lesezeit aus Basis-State + page_updates-Log extrahiert (Teilbaeume sind klein, kein Drift-Risiko zwischen zwei Schreibpfaden); dabei wichtig: der persistierte Basis-State allein laeuft dem Live-Dokument hinterher. Endpoint GET /read/:pond/:slug/tasks (Subtree via collectSubtreeIds, canAccessPage je Quellseite); die Public-Ansicht expandiert den Placeholder serverseitig zur statischen Tabelle (Instanzsprache). NodeView mit Rueckschreib-Checkboxen (optimistisch, Override bis der debounced Persist nachzieht), Einfuegen ueber die Block-Auswahl. Neuer CI-Pack tasks.spec beweist den vollen Loop inkl. Rueckschreiben. BEWUSST NICHT drin: Filter/Sortierung, teichuebergreifend, Live-Push.