gigafibre-fsm/apps/ops/src/pages
louispaulb cd25fa2504 fix(dispatch): double-assign F + médias terrain dans le ticket + deep links natifs
- capacityByDay compte les jobs assignés SANS heure (untimed_used_h au prorata AM/PM/Soir)
- /roster/assign-job : garde 409 si le ticket F est déjà à un autre vrai tech (force pour écraser) ; SPA = dialog confirm
- mirrorAssign : start_time depuis F due_time (am/pm) + fix due_date (cur.→r.) + backfill fill-only dans watchLegacy (97% des tickets F = 'day' → le spread capacité est le fix porteur)
- pushAssignments : garde anti-clobber (conflits F skippés, force=1) + compteur conflicts
- ticket-collab : courriels de notification → deep link OPS /#/tickets?open= (fini le desk) ; TicketsPage lit ?open= ; Dashboard ouvre le ticket précis
- DetailModal + SupplierInvoices : lien desk gaté can('manage_settings')
- NOUVEAU JobMediaModule (photos tech géo-vérifiées + journal terrain) monté dans IssueDetail onsite + volet Planif ; hub /roster/job-media + /field/photo-file signé ; JobThread poll silencieux 45s
- legacy-sync emailList : strip caractères invisibles (soft hyphen U+00AD…) — fixait un 417 InvalidEmailAddress en boucle (compte 15988)

Déployé prod 2026-07-18 (hub restart + SPA /opt/ops-app), sondes live OK.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-18 18:02:37 -04:00
..
AddressConformityPage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
AgentFlowsPage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
BillingApprovalsPage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
ClientDetailPage.vue consolidate uncommitted multi-session work (NL staff-agent, user avatars/profil, HelpHint, ticket detail modules, skill icons, hub agent/payments/sync) 2026-07-09 20:43:50 -04:00
ClientsPage.vue feat(ui): T5 audit — composant DynamicFilter réutilisable + intégré sur Clients 2026-07-04 19:13:37 -04:00
CommunicationsPage.vue feat(fsm): platform build — comms UI, F→ERPNext sync/billing, roster, campaigns, network, reports 2026-06-15 06:12:12 -04:00
ConversationFullPage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
CopilotePage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
DashboardPage.vue fix(dispatch): double-assign F + médias terrain dans le ticket + deep links natifs 2026-07-18 18:02:37 -04:00
dispatch-styles.scss feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
dispatch-styles.scss.dark-backup refactor: reduce token count, DRY code, consolidate docs 2026-04-13 08:39:58 -04:00
EmailQueuePage.vue feat(ui): T5 — DynamicFilter sur Factures fournisseurs + File courriels 2026-07-04 20:02:11 -04:00
EquipePage.vue consolidate uncommitted multi-session work (NL staff-agent, user avatars/profil, HelpHint, ticket detail modules, skill icons, hub agent/payments/sync) 2026-07-09 20:43:50 -04:00
EvaluationsPage.vue consolidate uncommitted multi-session work (NL staff-agent, user avatars/profil, HelpHint, ticket detail modules, skill icons, hub agent/payments/sync) 2026-07-09 20:43:50 -04:00
EventsPage.vue Events: personal rsvp_url per-language, address field, logo spacing 2026-07-09 13:26:45 -04:00
HistoriquePage.vue refactor(ui): T1 (suite) — unifier les formatters variants vers les canoniques (formats cohérents) 2026-07-04 18:42:17 -04:00
LegacySyncPage.vue consolidate uncommitted multi-session work (NL staff-agent, user avatars/profil, HelpHint, ticket detail modules, skill icons, hub agent/payments/sync) 2026-07-09 20:43:50 -04:00
NetworkPage.vue fix(ops/mobile): Network GPON tient sur mobile (onglets défilants + arbre enroulé + boutons tactiles) 2026-07-04 20:56:11 -04:00
OcrPage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
PipelinePage.vue feat(fsm): platform build — comms UI, F→ERPNext sync/billing, roster, campaigns, network, reports 2026-06-15 06:12:12 -04:00
PlanificationPage.vue refactor(planif): « Bloquer du temps » = UN job/ticket qui occupe la timeline, priorité = curseur dur/souple 2026-07-16 18:38:17 -04:00
RapportsPage.vue Déclutter: primitives réutilisables + palette ⌘K + Planif épurée 2026-07-09 06:53:24 -04:00
RendezVousPage.vue feat(ops): auto-detect AM/PM from ticket title + AM/PM in RDV proposal 2026-07-05 17:54:46 -04:00
ReportARPage.vue consolidate uncommitted multi-session work (NL staff-agent, user avatars/profil, HelpHint, ticket detail modules, skill icons, hub agent/payments/sync) 2026-07-09 20:43:50 -04:00
ReportInternetCherPage.vue refactor(ui): T1 audit — dédup formatters → useFormatters (0 changement d'affichage) 2026-07-04 18:31:18 -04:00
ReportNegativeBillingPage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
ReportRevenueExplorerPage.vue refactor(ui): T1 audit — dédup formatters → useFormatters (0 changement d'affichage) 2026-07-04 18:31:18 -04:00
ReportRevenuPage.vue perf(ops): lazy-load heavy libs & shell components — chunks route/shell bien plus légers 2026-07-03 20:35:30 -04:00
ReportTaxesPage.vue perf(ops): lazy-load heavy libs & shell components — chunks route/shell bien plus légers 2026-07-03 20:35:30 -04:00
ReportTerminatedActivePage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
ReportVentesPage.vue consolidate uncommitted multi-session work (NL staff-agent, user avatars/profil, HelpHint, ticket detail modules, skill icons, hub agent/payments/sync) 2026-07-09 20:43:50 -04:00
SettingsPage.vue feat(ops): staff reconciliation console (Authentik ↔ System User/Employee/Tech) 2026-07-10 13:01:33 -04:00
SubcontractorsPage.vue refactor(ui): T1 (suite) — unifier les formatters variants vers les canoniques (formats cohérents) 2026-07-04 18:42:17 -04:00
SupplierInvoicesPage.vue fix(dispatch): double-assign F + médias terrain dans le ticket + deep links natifs 2026-07-18 18:02:37 -04:00
TaskGraphPage.vue perf(ops): lazy-load heavy libs & shell components — chunks route/shell bien plus légers 2026-07-03 20:35:30 -04:00
TelephonyPage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
ThemePage.vue feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
TicketsPage.vue fix(dispatch): double-assign F + médias terrain dans le ticket + deep links natifs 2026-07-18 18:02:37 -04:00