- Gin HTTP server sa dashboard i API endpointima - JSON API: GET /api/tasks, GET /api/task/:id, POST /api/task/:id/move - HTML dashboard sa Kanban prikazom (5 kolona) - HTMX za interaktivnost (klik na task → detalj panel) - Embedded static fajlovi (htmx.min.js, sortable.min.js) - Config: dodat KAOS_PORT - 10 server testova, 77 ukupno — svi prolaze - Očišćeni duplikati taskova iz v0.1 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
T10: Drag & Drop — premesti task prevlačenjem
Kreirao: planer Datum: 2026-02-20 Agent: coder Model: Sonnet Zavisi od: T09
Opis
Dodaj Sortable.js na kanban board — prevuci task iz jedne kolone u drugu. Na drop, HTMX pošalje POST i Go premesti fajl.
Fajlovi za izmenu
code/web/
├── templates/
│ ├── dashboard.html ← dodaj Sortable inicijalizaciju
│ └── partials/
│ └── column.html ← dodaj sortable atribute
└── static/
└── style.css ← drag stilovi (ghost, placeholder)
Kako radi
<div class="column" id="col-ready" data-folder="ready">
<div class="task-card" data-id="T08">...</div>
</div>
<script>
document.querySelectorAll('.column').forEach(col => {
new Sortable(col, {
group: 'tasks',
animation: 150,
onEnd: function(evt) {
const taskId = evt.item.dataset.id;
const toFolder = evt.to.dataset.folder;
htmx.ajax('POST', `/task/${taskId}/move?to=${toFolder}`, {
target: '#board',
swap: 'outerHTML'
});
}
});
});
</script>
Pravila premestanja
Dozvoljena kretanja:
- backlog → ready (operater odobri)
- ready → backlog (operater povuče nazad)
- review → done (operater odobri)
- review → ready (operater vrati na doradu)
Zabranjena kretanja (agent radi ovo, ne operater):
- ready → active (samo agent)
- active → review (samo agent)
Server validira i odbije nedozvoljene poteze sa porukom.
Vizuelni feedback
- Drag: kartica postaje poluprozirna
- Drop zona: highlight kad se kartica prevlači iznad
- Uspešan drop: zeleni flash
- Neuspešan drop: crveni flash + kartica se vrati
Testovi
- Premesti T08 iz backlog u ready → fajl premešten, board ažuriran
- Pokušaj premesti u active → server odbije, kartica se vrati
- Drag & drop ne kvari postojeći klik za detalj
Očekivani izlaz
Prevuci task iz kolone u kolonu. Server premesti fajl. Board se ažurira.