# T10 Izveštaj: Drag & Drop — premesti task prevlačenjem **Agent:** coder **Model:** Opus **Datum:** 2026-02-20 --- ## Šta je urađeno Dodat Sortable.js drag & drop na Kanban board sa server-side validacijom: ### Izmenjeni fajlovi | Fajl | Izmena | |------|--------| | `web/templates/layout.html` | Sortable.js script, initSortable(), toast notifikacije | | `web/templates/partials/column.html` | column-tasks div sa data-folder atributom | | `web/static/style.css` | Ghost, chosen, drag stilovi, toast, flash animacije | | `internal/server/server.go` | allowedMoves mapa, isMoveAllowed(), 403 za zabranjene poteze | | `internal/server/server_test.go` | 7 novih testova za validaciju i D&D | ### Pravila premještanja (server validira) | Dozvoljeno | Zabranjeno | |-----------|------------| | backlog → ready | ready → active (samo agent) | | ready → backlog | active → review (samo agent) | | review → done | backlog → done | | review → ready | backlog → active | | done → review | done → backlog | ### Vizuelni feedback - Ghost: poluprozirna kartica sa dashed borderom - Chosen: shadow efekat - Drag: blaga rotacija - Toast: zeleni za uspeh, crveni za grešku - Board se automatski osvežava posle svakog poteza ### Testovi — 23/23 PASS (server) Novi testovi: ``` TestAPIMoveTask_ForbiddenToActive PASS TestAPIMoveTask_ForbiddenActiveToReview PASS TestAPIMoveTask_AllowedBacklogToReady PASS TestAPIMoveTask_AllowedReviewToDone PASS TestDashboardHTML_HasSortableScript PASS TestDashboardHTML_HasDataFolderAttributes PASS TestIsMoveAllowed PASS ``` ### Ukupno projekat: 90 testova, svi prolaze - `go vet ./...` — čist - `go build ./...` — prolazi