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:
Jon Vanvik 2026-06-15 13:18:33 +02:00
parent 6b9dbf8254
commit be166034de
8 changed files with 686 additions and 32 deletions

View file

@ -93,6 +93,7 @@
<div class="view-toggle">
<button id="view-board" title="Tavle (v)">▦ Tavle</button>
<button id="view-table" title="Tabell (v)">☰ Tabell</button>
<button id="view-plan" title="Dagsplan (p)">📅 Dagsplan</button>
</div>
<div class="filter-group" id="fg-status">
<label>Status</label>
@ -133,6 +134,26 @@
<section class="board" id="board" style="display:none"></section>
<section class="planner" id="planner" style="display:none">
<div class="plan-col">
<div class="plan-col-head">
<h3>Tilgjengelige oppgaver <span class="col-meta" id="plan-avail-count"></span></h3>
<span class="plan-col-hint">klikk + for å planlegge</span>
</div>
<div class="plan-col-body" id="plan-available-body"></div>
</div>
<div class="plan-col plan-today">
<div class="plan-col-head">
<div class="plan-date-row">
<h3>Dagsplan</h3>
<input type="date" id="plan-date" title="Velg dag å planlegge">
</div>
<span class="col-meta" id="plan-capacity"></span>
</div>
<div class="plan-col-body" id="plan-today-body"></div>
</div>
</section>
<div class="table-panel" id="table-panel" style="display:none">
<div class="table-head">
<h3>Oppgaveliste <span class="count" id="tbl-count">0</span></h3>
@ -169,7 +190,8 @@
Sanntidssynk via WebSocket · snarveier:
<span class="kbd">n</span> ny ·
<span class="kbd">/</span> søk ·
<span class="kbd">v</span> tavle/tabell ·
<span class="kbd">v</span> bytt visning ·
<span class="kbd">p</span> dagsplan ·
<span class="kbd">a</span> aktivitet ·
<span class="kbd">esc</span> lukk
</footer>
@ -246,6 +268,10 @@
<label>Tags (komma-separert)</label>
<input type="text" id="f-tags" placeholder="vedlikeholdsvindu, kunde-X, audit">
</div>
<div class="form-field full status-note-field" id="f-statusnote-field" style="display:none">
<label id="f-statusnote-label">Avslutningskommentar (valgfritt)</label>
<input type="text" id="f-statusnote" placeholder="Legges som kommentar når du lagrer">
</div>
<div class="comments-section" id="comments-section" style="display:none">
<h4>Kommentarer <span id="comment-count" style="font-family:var(--mono)"></span></h4>
<div id="comments-list"></div>
@ -264,6 +290,26 @@
</div>
</div>
<div class="modal-overlay" id="status-modal">
<div class="modal" style="max-width:460px">
<div class="modal-head">
<h2 id="status-modal-title">Kommentar</h2>
<button class="icon-btn" id="status-modal-close" style="font-size:18px">×</button>
</div>
<div class="modal-body" style="grid-template-columns:1fr">
<div class="form-field full">
<label id="status-modal-label">Legg til en kommentar (valgfritt)</label>
<textarea id="status-comment" placeholder="F.eks. hva som ble gjort, eller hva som blokkerer …"></textarea>
</div>
</div>
<div class="modal-foot">
<span style="flex:1;font-size:11px;color:var(--text-faint)">⏎ for å lagre · Esc for å avbryte</span>
<button id="status-skip">Hopp over</button>
<button class="primary" id="status-save">Lagre</button>
</div>
</div>
</div>
<div class="toast-stack" id="toast-stack"></div>
<script src="app.js"></script>