Dagsplan: flytt/navn/deling + plan-badge, kategorier, feltmodus
Dagsplan kan navngis og flyttes til annen dato (slår sammen uten datatap).
Delbar som hovedregel (shared-flagg default true) med toggle for privat;
andres delte planer kan ses skrivebeskyttet via "Plan for"-velger.
getPlanFor håndhever tilgang. Per-oppgave plan-badge (dag + person) via
planIndex filtrert per viewer.
Egendefinerte kategorier (categories.json) i tillegg til de 12 innebygde;
dynamisk validering, deles via WS, addes fra kategori-nedtrekket.
Feltmodus (body.field-mode): større berøringsmål for mobil, auto på <640px.
plans.json migreres array -> {name,items,shared} ved oppstart (bakoverkompat).
26 integrasjonstester (6 nye), alle grønne. README + CLAUDE.md oppdatert.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
be166034de
commit
bdeb6254b9
8 changed files with 724 additions and 147 deletions
|
|
@ -135,8 +135,16 @@ WantedBy=multi-user.target
|
|||
- **Presence** — se hvem som er pålogget akkurat nå
|
||||
- **Kanban-tavle** med drag & drop mellom statuskolonner, pluss klassisk tabellvisning
|
||||
- **Dagsplan** — plukk oppgaver fra lista og bygg en ordnet plan for dagen
|
||||
(dra for å sortere, kapasitet i timer, datovelger). Planen er personlig og
|
||||
synkes mellom dine egne faner.
|
||||
(dra for å sortere, kapasitet i timer, datovelger). Kan navngis, flyttes til
|
||||
en annen dato i ett klikk, og er som hovedregel synlig for alle (med en
|
||||
«Synlig for alle»-toggle for å gjøre den privat). Andres delte planer kan ses
|
||||
skrivebeskyttet via «Plan for»-velgeren.
|
||||
- **Plan-badge på oppgaver** — hvert kort/rad viser om oppgaven er planlagt,
|
||||
hvilken dag og av hvem.
|
||||
- **Egendefinerte kategorier** — legg til nye kategorier fra kategori-nedtrekket
|
||||
(«+ Ny kategori …»); de deles med hele teamet umiddelbart.
|
||||
- **Feltmodus** — toggle (📱 / `f`) for større knapper og mer tommelvennlig
|
||||
layout på mobil; slås på automatisk på små skjermer.
|
||||
- **Kommentar ved statusbytte** — når du markerer ferdig eller blokkert (via
|
||||
knapp, kanban-drag eller modal) tilbys du å skrive en kommentar som festes
|
||||
til oppgaven og vises i aktivitetsloggen
|
||||
|
|
@ -149,7 +157,7 @@ WantedBy=multi-user.target
|
|||
- **Angre sletting** direkte fra toast
|
||||
- KPI-er, grafer (kategori/prioritet/eier), filtre, sortering, søk
|
||||
- Eksport/import av JSON, eksempeldata for demo
|
||||
- Tastatursnarveier: `n` ny · `/` søk · `v` bytt visning · `p` dagsplan · `a` aktivitet · `esc` lukk
|
||||
- Tastatursnarveier: `n` ny · `/` søk · `v` bytt visning · `p` dagsplan · `f` feltmodus · `a` aktivitet · `esc` lukk
|
||||
|
||||
## API
|
||||
|
||||
|
|
@ -158,14 +166,17 @@ optimistisk låsing — send med ved update, få 409 hvis noen andre har lagret.
|
|||
|
||||
| Metode | Endepunkt | Beskrivelse |
|
||||
|---|---|---|
|
||||
| GET | `/api/state` | Bruker, oppgaver, aktivitet, kjente brukere, online, og dagens plan |
|
||||
| GET | `/api/state` | Bruker, oppgaver, aktivitet, kjente brukere, online, kategorier, dagens plan, planIndex |
|
||||
| POST | `/api/tasks` | Opprett oppgave (`title` påkrevd) |
|
||||
| PUT | `/api/tasks/:id` | Oppdater (delvis OK; send `v` for konfliktsjekk; valgfri `comment` festes som status-kommentar) |
|
||||
| DELETE | `/api/tasks/:id` | Slett |
|
||||
| POST | `/api/tasks/:id/comments` | Legg til kommentar `{ text }` |
|
||||
| DELETE | `/api/tasks/:id/comments/:cid` | Slett egen kommentar |
|
||||
| GET | `/api/plan?date=YYYY-MM-DD` | Hent egen dagsplan (ordnet liste av task-ids) |
|
||||
| PUT | `/api/plan` | Lagre egen dagsplan `{ date, items: [id…] }` |
|
||||
| GET | `/api/plan?date=YYYY-MM-DD&user=navn` | Hent dagsplan (egen, eller en annens hvis delt — ellers 403) |
|
||||
| PUT | `/api/plan` | Lagre egen dagsplan `{ date, items: [id…], name?, shared? }` |
|
||||
| PUT | `/api/plan/share` | Slå deling av/på `{ date, shared }` |
|
||||
| PUT | `/api/plan/move` | Flytt hele planen `{ from, to }` (slår sammen på måldato) |
|
||||
| POST | `/api/categories` | Legg til egendefinert kategori `{ name, color? }` |
|
||||
| POST | `/api/replace` | Erstatt hele listen (import) |
|
||||
| POST | `/api/seed` | Last eksempeldata (kun hvis tomt) |
|
||||
| POST | `/api/login` | Sett navn-cookie (hvis cookie-auth er på) |
|
||||
|
|
@ -183,7 +194,8 @@ curl -s -X POST localhost:3000/api/tasks \
|
|||
## Lagring
|
||||
|
||||
JSON-filer i `DATA_DIR` (atomisk skriv via tmp-fil + rename, serialisert i
|
||||
prosessen): `tasks.json`, `activity.json`, `users.json` og `plans.json`
|
||||
(dagsplaner per bruker per dato; planer eldre enn 30 dager ryddes ved oppstart).
|
||||
prosessen): `tasks.json`, `activity.json`, `users.json`, `plans.json`
|
||||
(dagsplaner `{name, items, shared}` per bruker per dato; eldre enn 30 dager
|
||||
ryddes ved oppstart) og `categories.json` (egendefinerte kategorier).
|
||||
Én node-prosess per datakatalog. Holder fint til tusenvis av oppgaver; blir det
|
||||
trangt er SQLite (`node:sqlite`) neste naturlige steg.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue