prop/test/microwaveprop_web/live
Graham McIntire 89a5cfefd2
feat(rover-locations): drag-to-edit marker with live grid+coord preview
Owner / admin click "Edit" on /rover-locations/:id and the marker
becomes draggable. As they drag, the JS hook pushes `location_dragged`
events with the new lat/lon; the LiveView updates `working_lat` /
`working_lon` / `grid` so the page shows the live preview without
writing to the DB. "Save" persists via Rover.update_location, "Cancel"
reverts both the assigns and the marker position.

Implementation notes:
- Switched the map marker from L.circleMarker to a draggable L.marker
  with a divIcon (CircleMarker has no `dragging` handler).
- A second `draggingDotIcon` (amber, larger, grab cursor) makes the
  edit affordance obvious.
- Server <-> hook coordination uses push_event:
  set_marker_draggable / reset_marker. Drag results come back on
  pushEvent("location_dragged", { lat, lon }).
- Coordinates row binds to working_lat/working_lon so the displayed
  decimals + derived grid update on every drag, not only on save.
2026-05-03 12:51:12 -05:00
..
admin test: push line coverage from 71.7% → 78.67% 2026-04-23 18:43:18 -05:00
contact_live test: push line coverage from 71.7% → 78.67% 2026-04-23 18:43:18 -05:00
rover_locations_live feat(rover-locations): drag-to-edit marker with live grid+coord preview 2026-05-03 12:51:12 -05:00
algo_live_test.exs Show topbar loading indicator while scores are loading 2026-03-31 09:30:20 -05:00
beacon_live_test.exs test: coverage round 3 (83.96% → 84.39%) + 10 new property tests 2026-04-24 10:15:37 -05:00
contact_live_test.exs test: coverage round 4 (84.39% → 84.44%) + 6 new property tests 2026-04-24 10:32:05 -05:00
contact_map_live_test.exs feat(rover-planning): /rover-planning page with path-profile worker 2026-05-03 11:04:11 -05:00
eme_live_test.exs refactor: deduplicate helpers and simplify Scorer 2026-04-28 14:14:34 -05:00
import_live_test.exs feat(import): live /imports/:id progress page + gate upload bars on submit 2026-04-17 09:31:22 -05:00
map_live_test.exs perf(map): /scores/cells binary endpoint, client-side fetch + band/time prefetch 2026-04-29 14:27:20 -05:00
path_live_test.exs test: coverage round 4 (84.39% → 84.44%) + 6 new property tests 2026-04-24 10:32:05 -05:00
rover_live_test.exs feat(rover): replace max-drive-time slider with max-distance in miles 2026-04-25 17:21:57 -05:00
rover_locations_live_test.exs refactor(rover-locations): rename status atoms ideal→good, off_limits→bad 2026-05-03 11:13:18 -05:00
rover_planning_live_test.exs feat(rover-planning): add/remove rover sites inline on the show page 2026-05-03 12:47:07 -05:00
skewt_live_test.exs perf(skewt): load profile + sounding asynchronously via start_async 2026-04-25 14:36:30 -05:00
skewt_location_resolver_test.exs feat(skewt): add /skewt LiveView with HRRR-backed Skew-T-Log-P plot 2026-04-25 12:13:46 -05:00
skewt_svg_test.exs feat(rover): Oban worker enriches station elevation post-insert 2026-04-25 16:26:33 -05:00
status_live_test.exs feat(status): show Rust prop-grid-rs work queue alongside Oban panel 2026-04-19 17:07:38 -05:00
submit_live_test.exs fix(submit): allowlist switch_tab values instead of trusting client input 2026-04-25 10:10:42 -05:00
user_management_live_test.exs Drop gridmap.org dependency, resolve callsigns locally 2026-04-12 17:43:29 -05:00
user_profile_live_test.exs test: coverage round 3 (83.96% → 84.39%) + 10 new property tests 2026-04-24 10:15:37 -05:00
weather_ca_map_live_test.exs fix(weather-ca): drop the 1h freshness cutoff so HRDPS data renders 2026-04-30 12:24:34 -05:00
weather_map_live_test.exs fix(weather): tolerate stale map_bounds from /map → /weather navigation 2026-04-30 17:34:38 -05:00