Legg til dagsplan + kommentar ved statusbytte
Dagsplan: tredje visning ved siden av tavle/tabell. To-kolonne planlegger der man plukker oppgaver fra backlog og bygger en ordnet plan for dagen (drag-sortering, kapasitet i timer, datovelger). Per bruker, per dato, lagret i plans.json; synkes mellom egne faner via plan-WS-melding. Kommentar ved statusbytte: når en oppgave markeres ferdig/blokkert (knapp, kanban-drag eller modal) tilbys en valgfri kommentar som festes til oppgaven (kind:status) og legges i aktivitetsloggen — atomisk i ett update-kall. 20 integrasjonstester (8 nye), alle grønne. README + CLAUDE.md oppdatert. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
6b9dbf8254
commit
be166034de
8 changed files with 686 additions and 32 deletions
|
|
@ -134,6 +134,12 @@ WantedBy=multi-user.target
|
|||
- **Sanntidssynk** — alle endringer pushes til alle åpne faner via WebSocket
|
||||
- **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.
|
||||
- **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
|
||||
- **Hurtig-registrering** med tokens: `Bytt SFP #l1 p2 @me !imorgen ~1h loc:DC-OSL-1`
|
||||
- **Kommentarer** per oppgave
|
||||
- **Aktivitetslogg** — hvem gjorde hva, når (sidepanel)
|
||||
|
|
@ -143,7 +149,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 · `a` aktivitet · `esc` lukk
|
||||
- Tastatursnarveier: `n` ny · `/` søk · `v` bytt visning · `p` dagsplan · `a` aktivitet · `esc` lukk
|
||||
|
||||
## API
|
||||
|
||||
|
|
@ -152,12 +158,14 @@ 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, hvem som er online |
|
||||
| GET | `/api/state` | Bruker, oppgaver, aktivitet, kjente brukere, online, og dagens plan |
|
||||
| POST | `/api/tasks` | Opprett oppgave (`title` påkrevd) |
|
||||
| PUT | `/api/tasks/:id` | Oppdater (delvis OK; send `v` for konfliktsjekk) |
|
||||
| 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…] }` |
|
||||
| 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å) |
|
||||
|
|
@ -175,5 +183,7 @@ curl -s -X POST localhost:3000/api/tasks \
|
|||
## Lagring
|
||||
|
||||
JSON-filer i `DATA_DIR` (atomisk skriv via tmp-fil + rename, serialisert i
|
||||
prosessen). Én node-prosess per datakatalog. Holder fint til tusenvis av
|
||||
oppgaver; blir det trangt er SQLite (`node:sqlite`) neste naturlige steg.
|
||||
prosessen): `tasks.json`, `activity.json`, `users.json` og `plans.json`
|
||||
(dagsplaner per bruker per dato; planer eldre enn 30 dager ryddes ved oppstart).
|
||||
É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