T7: Reports Page UX

2026-05-20 23:00:30 -04:00
parent c2b4dcba69
commit 6ea30860e5
+11
@@ -30,6 +30,17 @@ Mobile-first web app for tracking physical assets via barcode scanning, OCR stic
- Replaced 3 native `prompt()` calls: geofence naming (2x), database reset confirmation (1x) - Replaced 3 native `prompt()` calls: geofence naming (2x), database reset confirmation (1x)
- 7 Playwright E2E tests passing - 7 Playwright E2E tests passing
### T7 Reports Page UX — May 2026
- **Date range presets** — Today, This Week, This Month, Last Month, All Time quick-select buttons with active highlight
- **Empty state guidance cards** — Each report section shows helpful guidance with icons when no data exists (instead of bare "No visits in range")
- **CSV download** — Button hidden when no data, appears when reports have results
- **Loading spinner** — Shows while report generates, button disabled during fetch
- **Per Technician / Per Asset** — Time-on-site sections show guidance cards when empty
- **View on Map button** — Location-based entries in Service Summary table get a 📍 Map button that flies to the asset on the map
- **Report caching** — Data cached client-side; switching between reports tabs does not re-fetch from API
- **Backend fix** — Added `a.latitude, a.longitude` to `/api/visits` SQL query (was missing, so map button never rendered)
- Commits: 6c1d5c3 (HTML/JS/CSS), 51f9bcf (backend lat/lng fix)
### T6 Map Page Improvements — May 2026 ### T6 Map Page Improvements — May 2026
- **Marker clustering** — Leaflet.markercluster groups dense asset pins, spiderfies on click - **Marker clustering** — Leaflet.markercluster groups dense asset pins, spiderfies on click
- **Real GPS heatmap** — Heatmap layer now uses actual check-in GPS coordinates (was placebo based on visit counts) - **Real GPS heatmap** — Heatmap layer now uses actual check-in GPS coordinates (was placebo based on visit counts)