From d8325f7e559c54233b7490255c4f5e159230282d Mon Sep 17 00:00:00 2001 From: louispaulb Date: Tue, 7 Jul 2026 22:33:17 -0400 Subject: [PATCH] =?UTF-8?q?planif=20(vue=20semaine)=20:=20retire=20le=20fa?= =?UTF-8?q?ux=20avertissement=2072h=20+=20=C3=A9largit=20la=20colonne=20te?= =?UTF-8?q?ch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Heures par tech : la grille affiche 2 semaines (days=14) mais l'avertissement comparait le TOTAL (≈72h) à la limite hebdo (40h) → faux « surcharge ». Retiré le triangle rouge + le style rouge ; le total reste affiché en gris avec une infobulle « sur l'étendue affichée (N j), PAS une limite hebdo ». (Le réglage Max h/sem reste pour le solveur.) - Colonnes : .tech-col élargie (min 240→300, max 300→360, reste sticky) ; colonnes-jour min-width 132px → ~1 semaine tient dans la vue, la 2e semaine défile horizontalement (.grid-wrap overflow-x déjà présent). Vérifié : table 2149px > vue 1550px → défilement, tech-col 327px, cellules 132px, 0 avertissement rouge. Co-Authored-By: Claude Opus 4.8 --- apps/ops/src/pages/PlanificationPage.vue | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/apps/ops/src/pages/PlanificationPage.vue b/apps/ops/src/pages/PlanificationPage.vue index e533a85..80eaed1 100644 --- a/apps/ops/src/pages/PlanificationPage.vue +++ b/apps/ops/src/pages/PlanificationPage.vue @@ -461,7 +461,7 @@ Réglages de {{ t.name }} — compétences · cadence · horaire · domicile · appareil GPS · voir sa tournée{{ t.name }} {{ t.group }} - {{ hoursOf(t.id) }}h + {{ hoursOf(t.id) }}hHeures planifiées sur l'étendue affichée ({{ days }} j) — total, PAS une limite hebdomadaire Actions — {{ t.name }} @@ -6267,7 +6267,7 @@ onBeforeRouteLeave(async () => { await autosaveDraft() }) // #2 — flush le bro .roster-grid th, .roster-grid td { border: 1px solid #c7d0dc; text-align: center; padding: 2px; } /* séparateurs plus contrastés (était #eee, invisible sur le gris des cellules) */ .roster-grid th + th, .roster-grid td + td { border-left-color: #aab6c6; } /* séparateur de COLONNE (jour) plus marqué que les lignes — en-tête ET rangées */ .roster-grid thead th { position: sticky; top: 0; background: #fafafa; z-index: 1; } -.tech-col { position: sticky; left: 0; background: #fff; text-align: left !important; white-space: nowrap; padding: 2px 8px !important; min-width: 240px; max-width: 300px; z-index: 2; } +.tech-col { position: sticky; left: 0; background: #fff; text-align: left !important; white-space: nowrap; padding: 2px 8px !important; min-width: 300px; max-width: 360px; z-index: 2; } .roster-grid thead .tech-col { z-index: 3; } .roster-grid tbody tr:hover td { background: #f0f7ff; } .roster-grid tbody tr:hover .tech-col { background: #f0f7ff; } @@ -6309,7 +6309,9 @@ tr.res-hidden .hide-eye { opacity: 1; } .tech-name.clk:hover { text-decoration: underline; } .hol-toggle { font-size: 9px; color: #ccc; cursor: pointer; border: 1px solid #eee; border-radius: 3px; width: 14px; margin: 1px auto 0; line-height: 12px; } .hol-toggle.on { background: #ff9800; color: #fff; border-color: #ff9800; } -.cell { cursor: pointer; min-height: 24px; position: relative; background: #eef1f4; } /* gris pâle = INDISPONIBLE par défaut ; un quart crée une zone blanche (.tl-shift) */ +.cell { cursor: pointer; min-height: 24px; min-width: 132px; position: relative; background: #eef1f4; } /* gris pâle = INDISPONIBLE par défaut ; un quart crée une zone blanche (.tl-shift) */ +/* Colonnes-jour à largeur lisible : ~1 semaine tient dans la vue, la 2e semaine défile (.grid-wrap overflow-x). */ +.roster-grid thead th:not(.tech-col) { min-width: 132px; } .cell.over { background: #fbe2cf; } /* SURCHARGE : la cellule entière se teinte orange pâle (le triangle reste dans le coin) */ .cell.noshift { background: #fff3e0; box-shadow: inset 0 0 0 1.5px #ffb74d; } /* WARNING : ticket F assigné mais AUCUN quart planifié ce jour → cellule ambre */ .cell:hover { outline: 2px solid #1976d2; outline-offset: -2px; }