diff --git a/apps/ops/src/pages/PlanificationPage.vue b/apps/ops/src/pages/PlanificationPage.vue index 555a7b4..aeb247c 100644 --- a/apps/ops/src/pages/PlanificationPage.vue +++ b/apps/ops/src/pages/PlanificationPage.vue @@ -183,7 +183,7 @@
Absent · {{ absenceLabel(t.id, d.iso) }}
@@ -986,25 +956,13 @@ function panelUp () { _panelDrag = null; document.removeEventListener('mousemove // Réutilise les helpers de cellule (cellBands/cellBlocks/cellJobs/cellPct) → 0 nouvel appel réseau. const timelineDlg = reactive({ open: false, tech: null }) function openTimeline (t) { timelineDlg.tech = t; timelineDlg.open = true } -// ── Menu « jobs de la cellule » : détail + réordonner / re-prioriser (clic sur le progressbar) ── -const cellJobsMenu = reactive({ show: false, target: null, tech: null, day: null, list: [], saving: false }) -function openCellJobs (t, d, ev) { - cellJobsMenu.tech = t; cellJobsMenu.day = d - cellJobsMenu.list = cellJobs(t.id, d.iso).map(j => ({ ...j })) // copie ordonnée (route_order → priorité → heure) - cellJobsMenu.target = (ev && ev.currentTarget) || null - cellJobsMenu.show = true -} -function moveCellJob (i, dir) { const l = cellJobsMenu.list; const j = i + dir; if (j < 0 || j >= l.length) return; const [x] = l.splice(i, 1); l.splice(j, 0, x) } -async function saveCellOrder () { - const updates = cellJobsMenu.list.map((j, i) => ({ job: j.name, route_order: i + 1, priority: j.priority })) - cellJobsMenu.saving = true - try { const r = await roster.reorderJobs(updates); cellJobsMenu.show = false; await loadWeek(); $q.notify({ type: 'positive', message: (r.updated || 0) + ' job(s) réordonné(s)', timeout: 2000 }) } catch (e) { err(e) } finally { cellJobsMenu.saving = false } -} -// Deep-link vers le tableau Dispatch focalisé sur la ressource + son 1er jour avec jobs (sinon début de semaine). -function gotoDispatch (t) { +// (Clic sur le progressbar → gotoDispatch : on ouvre le timeline ÉDITABLE du tableau Dispatch, drag-drop + suppression, +// plutôt qu'un popup maison — réutilisation max + cohérence. Le réordonnancement/priorité se fait là-bas.) +// Deep-link vers le tableau Dispatch focalisé sur la ressource + le jour cliqué (sinon 1er jour de la semaine). +function gotoDispatch (t, dateIso) { const q = {} if (t) q.tech = t.id - q.date = (timelineDays.value[0] && timelineDays.value[0].iso) || start.value + q.date = dateIso || (timelineDays.value[0] && timelineDays.value[0].iso) || start.value router.push({ path: '/dispatch', query: q }) } const timelineDays = computed(() => {