feat(map): geofence watch HUD — finish/cancel, inbox, fence DVR #48

Merged
sirius merged 1 commit from feat/geofence-watch-ui into master 2026-09-01 07:44:36 -04:00
Owner

Frontend for the geofence watch work in PR #47 (backend).

Summary

  • Finish / Cancel next to Draw (plus a map bar so phones can close a polygon without double-click). After POST, prompt for a name then PATCH.
  • #gf-list is the control surface: active checkbox, name (fitBounds), Go, rename, Delete. Polygon popup: name + active + delete.
  • #gf-inbox seeds GET /api/geofence-alerts?limit=50 and prepends WS geofence_alert (toast kept). Click flies to the hit and opens the fence popup. Cap 50.
  • watch_geofences sent on WS open (sendLiveViewport) and after every loadGeofences (skip if socket not OPEN).
  • Selected-fence DVR uses GET /api/geofences/{id}/at?timestamp= instead of viewport aircraft/vessels. 404 falls back to current DVR with no toast. LIVE / deselect restore normal overlays. initDvrRange() re-runs after first successful aircraft/vessel load.

Tests

pytest tests/test_geofence_frontend.py — 7 passed.

Do not merge before

Backend PR #47 (feat/geofence-watch) — /at, /api/geofence-alerts, and watch_geofences live there. HUD degrades (404 fallback, empty inbox) if this lands first.

Frontend for the geofence watch work in PR #47 (backend). ## Summary - Finish / Cancel next to Draw (plus a map bar so phones can close a polygon without double-click). After POST, prompt for a name then PATCH. - `#gf-list` is the control surface: active checkbox, name (fitBounds), Go, rename, Delete. Polygon popup: name + active + delete. - `#gf-inbox` seeds `GET /api/geofence-alerts?limit=50` and prepends WS `geofence_alert` (toast kept). Click flies to the hit and opens the fence popup. Cap 50. - `watch_geofences` sent on WS open (`sendLiveViewport`) and after every `loadGeofences` (skip if socket not OPEN). - Selected-fence DVR uses `GET /api/geofences/{id}/at?timestamp=` instead of viewport aircraft/vessels. 404 falls back to current DVR with no toast. LIVE / deselect restore normal overlays. `initDvrRange()` re-runs after first successful aircraft/vessel load. ## Tests `pytest tests/test_geofence_frontend.py` — 7 passed. ## Do not merge before Backend PR #47 (`feat/geofence-watch`) — `/at`, `/api/geofence-alerts`, and `watch_geofences` live there. HUD degrades (404 fallback, empty inbox) if this lands first.
sirius added 1 commit 2026-09-01 01:35:07 -04:00
Phone can finish a polygon without double-click. List is mute/go/rename/delete.
Inbox seeds from /api/geofence-alerts and appends WS hits. Watch all fence
ids on /ws/live. Selected-fence DVR uses GET /api/geofences/{id}/at.
sirius merged commit cb20473119 into master 2026-09-01 07:44:36 -04:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: sirius/osint-dashboard#48
No description provided.