towerops/lib/towerops_web/components
Graham McIntire 5a9381f91a feat: add /coverage RF prediction feature scaffold
End-to-end CRUD scaffold for per-site, per-antenna RF coverage
prediction. Schema, context, antenna registry, Oban worker stub, and
three LiveViews are wired up; the actual ITM + LIDAR + buildings
compute pipeline lands in a follow-up.

- Migration + Coverage schema with full validation (RF params, pixel-
  budget cap, antenna_slug existence). organization_id excluded from
  cast (programmatic-only).
- Coverages context: org-scoped CRUD, validate_site_in_organization
  rejects cross-tenant site_id refs at insert/update, queue_compute
  with PubSub broadcast on per-coverage and per-org topics.
- MSI Planet .ant parser + persistent_term registry loaded at boot
  from priv/antennas/. Two synthetic .ant fixtures (omni + 90deg
  sector) bundled.
- CoverageWorker on new :coverage Oban queue (concurrency 2). Job
  args carry organization_id; worker refuses to run on org mismatch.
  Stub flips status to "failed" with "compute not yet implemented"
  so the UI flow is exercisable.
- LiveViews: index (org-wide, live status updates), form (antenna
  picker grouped by manufacturer), show (status banners, params
  panel, map placeholder). Sidebar nav link added.
- Routes /coverage, /coverage/new, /coverage/:id, /coverage/:id/edit
  under :require_authenticated_user_with_default_org.
- 41 new tests covering schema validation, .ant parsing, context
  CRUD with cross-org guards, Oban job enqueue.
2026-05-06 13:44:14 -05:00
..
layouts feat: add Plausible analytics to all pages 2026-04-29 13:46:24 -05:00
breadcrumbs.ex feat: add global CSS polish — transitions, hover effects, scrollbar styling, status pulse 2026-02-13 19:17:38 -06:00
consent_prompt.ex Prevent Oban polling/monitoring job stacking per device 2026-02-16 16:37:48 -06:00
cookie_consent.ex mib update from librenms 2026-01-28 13:38:31 -06:00
core_components.ex ux: improve mobile responsiveness across all pages 2026-03-12 16:49:59 -05:00
layouts.ex feat: add /coverage RF prediction feature scaffold 2026-05-06 13:44:14 -05:00
marketing_layouts.ex fix: add dark mode support to marketing site 2026-03-04 13:57:12 -06:00
skeletons.ex ui: polish auth pages, core components, and visual consistency 2026-02-14 21:11:33 -06:00