57 lines
1.2 KiB
Markdown
57 lines
1.2 KiB
Markdown
# T16: SSE auto-refresh dashboarda
|
|
|
|
**Kreirao:** planer
|
|
**Datum:** 2026-02-20
|
|
**Agent:** coder
|
|
**Model:** Sonnet
|
|
**Zavisi od:** T15
|
|
|
|
---
|
|
|
|
## Opis
|
|
|
|
Dashboard se automatski ažurira kad se stanje taskova promeni.
|
|
Server šalje SSE event kad se fajl premesti. Board se sam osveži.
|
|
|
|
## Kako radi
|
|
|
|
1. Server prati TASKS/ foldere (fsnotify ili polling svake 2s)
|
|
2. Kad se fajl premesti/doda/obriše → pošalje SSE event
|
|
3. Dashboard sluša SSE → HTMX zameni board HTML
|
|
|
|
```html
|
|
<div id="board" hx-ext="sse" sse-connect="/events" sse-swap="taskUpdate">
|
|
<!-- kolone se zamene kad stigne event -->
|
|
</div>
|
|
```
|
|
|
|
## Endpoint
|
|
|
|
```
|
|
GET /events → SSE stream
|
|
event: taskUpdate
|
|
data: <html fragment svih kolona>
|
|
```
|
|
|
|
## Pravila
|
|
|
|
- Polling svake 2s (jednostavnije od fsnotify za v0.3)
|
|
- Šalje event SAMO kad se stanje promeni (pamti hash prethodnog stanja)
|
|
- Reconnect automatski (EventSource default ponašanje)
|
|
- Ne kvari drag & drop (event se ne šalje dok je drag aktivan)
|
|
|
|
## Testovi
|
|
|
|
- GET /events → SSE konekcija uspostavljena
|
|
- Premesti fajl → event poslat u roku od 3s
|
|
- Nema promena → nema nepotrebnih eventova
|
|
- Reconnect posle prekida
|
|
|
|
---
|
|
|
|
## Pitanja
|
|
|
|
---
|
|
|
|
## Odgovori
|