gigafibre-fsm/apps/ops/src/pages
louispaulb 510d619b5e feat(ops/dispatch): right-click tech pin + click-on-map home picker + center map on HQ
Three connected UX changes:

1. **Map centered on Gigafibre HQ on first load** —
   Sainte-Clotilde (lng=-73.6756, lat=45.1599), zoom 10 — covers the
   service area (Sainte-Clotilde + Châteauguay + Napierville +
   Hemmingford). Was downtown Montréal.

2. **Right-click on a tech pin** opens the existing techCtx menu
   (already used from the calendar via @ctx-tech). New entries:
     • 📍 Adresse de départ…  → openTechHomeDialog
     • 🎯 Choisir sur la carte → startTechGeoFix (mirrors the existing
                                  geoFixJob flow used for jobs)

3. **The 📍 button in the GPS sidebar** now offers a 2-option chooser
   first: "Saisir une adresse" or "Cliquer sur la carte". Picking the
   map option drops the user into geoFixTech mode.

Implementation:

  • useMap.js: new geoFixTech ref + startTechGeoFix/cancelTechGeoFix
    + a contextmenu listener on each tech outer wrapper that calls
    openTechCtx(e, tech). The map's main click handler now branches:
    if geoFixTech is set, persist the lng/lat via saveTechHome (passed
    in via deps as a forward-bound arrow because saveTechHome is
    destructured below the useMap call in DispatchPage).
  • DispatchPage.vue: new banner shown while in pick mode (animated
    indigo bar at top, "Cliquez sur la carte pour {tech}", with a
    cancel button); ESC also cancels.
  • dispatch-styles.scss: .sb-geofix-banner styles + reusing the
    existing pulse keyframe.
2026-05-05 14:02:26 -04:00
..
AgentFlowsPage.vue refactor: major cleanup — remove dead dispatch app, commit all backend code, extract client composables 2026-04-08 17:38:38 -04:00
ClientDetailPage.vue feat(ops): Service Contract detail view + sub-delete redirects there 2026-04-23 14:46:34 -04:00
ClientsPage.vue refactor: major cleanup — remove dead dispatch app, commit all backend code, extract client composables 2026-04-08 17:38:38 -04:00
DashboardPage.vue refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
dispatch-styles.scss feat(ops/dispatch): right-click tech pin + click-on-map home picker + center map on HQ 2026-05-05 14:02:26 -04:00
dispatch-styles.scss.dark-backup refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
DispatchPage.vue feat(ops/dispatch): right-click tech pin + click-on-map home picker + center map on HQ 2026-05-05 14:02:26 -04:00
EquipePage.vue feat: add ops app + CONTEXT.md, simplify URL to /ops/ 2026-03-30 22:41:58 -04:00
NetworkPage.vue feat: contract → chain → subscription → prorated invoice lifecycle + tech group claim 2026-04-22 20:40:54 -04:00
OcrPage.vue feat: unify vision on Gemini + port field tech scan/device into /j 2026-04-22 11:26:01 -04:00
RapportsPage.vue refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
ReportARPage.vue refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
ReportRevenuPage.vue refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
ReportTaxesPage.vue refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
ReportVentesPage.vue refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
SettingsPage.vue feat: flow editor, Gemini QR scanner with offline queue, dispatch planning v2 2026-04-22 10:44:17 -04:00
TelephonyPage.vue refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
TicketsPage.vue feat: flow editor, Gemini QR scanner with offline queue, dispatch planning v2 2026-04-22 10:44:17 -04:00