prop/assets/js
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
..
types feat(eme): 3D WebGL Earth-Moon globe with lazy-loaded Three.js 2026-04-23 17:00:53 -05:00
app.ts feat(rover-locations): /rover-locations/map page with Maidenhead overlay 2026-05-03 11:14:58 -05:00
beacon_map_hook.ts feat(format): miles-primary distance formatting sitewide 2026-04-18 15:53:40 -05:00
beacons_list_map_hook.ts Beacon list map, profile page polish, nav ordering fix 2026-04-12 16:23:09 -05:00
contact_map_hook.ts refactor: normalize pos1/pos2 JSONB key to 'lon' everywhere 2026-04-17 09:10:32 -05:00
contacts_map_hook.ts feat(contact-map): date-range filter alongside callsign filter 2026-05-03 10:36:34 -05:00
elevation_profile_hook.ts feat(canopy): add tree-canopy height layer for path obstruction analysis 2026-04-26 12:51:48 -05:00
eme_globe_hook.ts feat(eme): 3D WebGL Earth-Moon globe with lazy-loaded Three.js 2026-04-23 17:00:53 -05:00
format.ts feat(format): miles-primary distance formatting sitewide 2026-04-18 15:53:40 -05:00
horizontal_wheel_scroll_hook.ts feat(rover): make candidate strip scroll horizontally + wheel-to-h-scroll 2026-04-26 09:31:10 -05:00
locate_me_hook.ts Convert all JavaScript to TypeScript with type annotations 2026-04-11 16:59:28 -05:00
location_map_hook.ts feat(rover-locations): drag-to-edit marker with live grid+coord preview 2026-05-03 12:51:12 -05:00
maidenhead_grid.ts feat(grid): show full Maidenhead label at subsquare zoom (em13sf, not sf) 2026-04-26 09:54:08 -05:00
path_forecast_hook.ts feat(path): hover-on-dot factor breakdown + tag fallback factors 2026-04-25 15:33:19 -05:00
propagation_map_hook.ts perf(map): /scores/cells binary endpoint, client-side fetch + band/time prefetch 2026-04-29 14:27:20 -05:00
rover_locations_map_hook.ts feat(rover-locations): /rover-locations/map page with Maidenhead overlay 2026-05-03 11:14:58 -05:00
rover_map_hook.ts feat(rover): add ESRI satellite imagery as base-layer option 2026-04-26 11:52:12 -05:00
rover_slider_hook.ts feat(rover): replace max-drive-time slider with max-distance in miles 2026-04-25 17:21:57 -05:00
weather_map_hook.ts feat(weather): always-visible close button on weather detail panel 2026-04-30 14:04:14 -05:00