Ny /diary-route som viser brukerens private noder — de som kun har owner-edge og ingen delte edges til andre. Gruppert etter dato, nyeste først, med inline oppretting av nye innlegg. Dagbok-knapp med tellebadge lagt til i mottak-siden. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
66 lines
2.4 KiB
Markdown
66 lines
2.4 KiB
Markdown
# Feature: Dagbok (Privat journal)
|
|
**Filsti:** `docs/features/dagbok.md`
|
|
|
|
## 1. Konsept
|
|
En personlig dagbok-visning som samler brukerens private noder — innhold
|
|
som ikke er delt med andre via edges. Fungerer som en kronologisk logg
|
|
over tanker, notater og idéer som kun er synlige for eieren.
|
|
|
|
## 2. Status
|
|
**Implementert med nodes+edges (mars 2026).** Sanntid via SpacetimeDB.
|
|
|
|
### Implementert
|
|
- Frontend: `/diary` route med dagbok-visning
|
|
- Filtrering: viser kun noder som er opprettet av brukeren og ikke har
|
|
delte edges (ingen non-system edges til andre brukere/noder)
|
|
- Ekskluderte node-typer: `communication`, `agent`, `person`, `team`
|
|
- Gruppering etter dato med norske datoetiketter ("I dag", "I går", ellers fullt format)
|
|
- Kronologisk sortering (nyeste først)
|
|
- Tidsstempel per innlegg
|
|
- Inline oppretting av nye dagbokinnlegg (tittel + innhold)
|
|
- Nye innlegg får `visibility: 'hidden'` og `owner`-edge fra bruker
|
|
- Dagbok-lenke med tellebadge i mottak-siden
|
|
- Responsivt design (max-w-3xl, mobilklar)
|
|
|
|
### Gjenstår
|
|
- Redigeringsmodus for eksisterende innlegg
|
|
- Rik tekst-editor (gjenbruk NodeEditor-komponenten)
|
|
- Sletting av innlegg
|
|
- Søk/filtrering i dagboken
|
|
- Eksport-funksjon
|
|
|
|
## 3. Datamodell
|
|
|
|
Dagboken bruker ingen egne tabeller eller edge-typer. Den er en
|
|
**visning** (query) over eksisterende noder og edges.
|
|
|
|
### Hva er et dagbokinnlegg?
|
|
En node som oppfyller alle tre kriterier:
|
|
1. `created_by = <brukerens node-ID>`
|
|
2. `node_kind` er ikke `communication`, `agent`, `person` eller `team`
|
|
3. Ingen non-system edges der den andre enden er en annen bruker/node
|
|
(kun `owner`-edge fra bruker, system-edges, og selv-refererende edges er tillatt)
|
|
|
|
### Oppretting
|
|
```
|
|
POST /intentions/create_node
|
|
{ node_kind: "content", title: "...", content: "...", visibility: "hidden" }
|
|
POST /intentions/create_edge
|
|
{ source_id: <bruker>, target_id: <ny_node>, edge_type: "owner" }
|
|
```
|
|
|
|
## 4. Frontend
|
|
|
|
### Route
|
|
`/diary` → `frontend/src/routes/diary/+page.svelte`
|
|
|
|
### Datakilde
|
|
SpacetimeDB sanntidsabonnement via `nodeStore` og `edgeStore`.
|
|
Ingen backend-query — all filtrering skjer i frontend basert på
|
|
SpacetimeDB-data som allerede er lastet.
|
|
|
|
### UI-struktur
|
|
- Header med tilbake-lenke til mottak og innlegg-teller
|
|
- Ny-innlegg-knapp (utvides til skjema med tittel + tekstfelt)
|
|
- Innlegg gruppert per dato, sortert nyeste først
|
|
- Hvert innlegg viser tidsstempel, tittel, og innholdsutdrag
|