towerops/lib/towerops_web/live/coverage_live
Graham McIntire 6bfcbee7fc feat: draggable Leaflet marker for radio location on coverage form
Adds a "Radio location" section to the coverage form with an embedded
Leaflet map. The marker starts at the parent site's coordinates and
the user can drag it to the actual radio location. A "Use site
location" button clears the override.

- New CoverageLocationPicker hook in assets/js/app.ts: creates the
  map, draggable marker, and pushes "location_picked" {lat, lon} on
  dragend. Re-creates the marker when the user picks a site that
  initially had no coords.
- form.html.heex: location section with map div (phx-hook), readout
  ("lat, lon - override" if set), and reset button. Hidden inputs for
  latitude_override / longitude_override so the form's params always
  carry the chosen coordinates.
- form.ex: handle_event "location_picked" updates the override fields
  in the changeset; "use_site_location" clears them. Helper functions
  radio_marker_lat/lon walk the form values, falling back to the
  selected site.

CI test gate fix:
- Worker test now requires GDAL CLI tools to write GeoTIFF + PNG.
  test_helper.exs detects whether gdal_translate / gdaldem are on
  PATH; when missing (CI's lean test image), :requires_gdal tagged
  tests are excluded. Locally with brew install gdal they still run.
2026-05-06 14:57:55 -05:00
..
form.ex feat: draggable Leaflet marker for radio location on coverage form 2026-05-06 14:57:55 -05:00
form.html.heex feat: draggable Leaflet marker for radio location on coverage form 2026-05-06 14:57:55 -05:00
index.ex feat: add /coverage RF prediction feature scaffold 2026-05-06 13:44:14 -05:00
index.html.heex refactor: imperial coverage form + Deygout/curvature propagation 2026-05-06 14:44:23 -05:00
show.ex feat: optionally attach a coverage to a device at the chosen site 2026-05-06 14:49:32 -05:00
show.html.heex feat: optionally attach a coverage to a device at the chosen site 2026-05-06 14:49:32 -05:00