Commit Graph

5 Commits

Author SHA1 Message Date
Chris Sherwood
866a6d5625
feat(maps): persist markers to database instead of localStorage
Moves map marker storage from browser localStorage to a server-side database
table so pins survive cache clears, browser changes, and device switches.

Backend:
- New `map_markers` table with future-proofed columns for routing (marker_type,
  route_id, route_order, notes) to avoid a migration when routes are added later
- CRUD endpoints: GET/POST /api/maps/markers, PATCH/DELETE /api/maps/markers/:id
- VineJS validation on create/update
- MapMarker Lucid model

Frontend:
- useMapMarkers hook now fetches from API instead of localStorage
- Marker IDs changed from string (UUID) to number (DB auto-increment)
- API client methods added for all marker operations

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 19:13:22 +00:00
Chris Sherwood
dc94e7cdaf
feat(maps): add scale bar, location markers with color selection
Add distance scale bar and user-placed location pins to the offline maps viewer.

- Scale bar (bottom-left) shows distance reference that updates with zoom level
- Click anywhere on map to place a named pin with color selection (6 colors)
- Collapsible "Saved Locations" panel lists all pins with fly-to navigation
- Pins persist in localStorage across page loads
- Full dark mode support for popups and panel via CSS overrides

New files: useMapMarkers hook, MarkerPin component, MarkerPanel component
No backend changes, no new dependencies.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 19:13:22 +00:00
Jake Turner
9220b4b83d fix(maps): respect request protocol for reverse proxy HTTPS support 2026-03-20 11:46:10 -07:00
Jake Turner
52e90041f4 feat(Maps): maps use full page by default 2026-02-04 21:54:36 -08:00
Jake Turner
12a6f2230d
feat: [wip] new maps system 2025-11-30 22:29:16 -08:00