forked from FroSteel/Planification
v2026.5.41 — Suppression des hardcodes runtime + UX admin + thème unifié
Suppression des hardcodes : - Plus aucun hardcode runtime pour groupe EV, domaines, liste de techs, absences récurrentes. Tout lu depuis admin_config (chrome.storage.local), persiste entre les mises à jour d'extension. - Au 1er install : aucun tech sélectionné → fetch lève no_team_configured, viewer affiche message invitant à configurer Paramètres → Équipe. - Suppression de la fonction hardcodée isPillonelAbsentFriday() → remplacée par isRecurringAbsence(tech, isoDate) générique qui lit cfg.recurringAbsences. Label 'Absent le X' calculé depuis le jour. UX admin : - Auto-refresh à l'enregistrement (équipe / domaines / heures) → plus besoin de recharger l'extension manuellement. - Bouton ✓ Appliquer pour les heures de la journée + toast de confirmation. - Toasts au-dessus du flou du panel admin (z-index 11000 > 10000). - Section Statuts retirée (placeholder lecture-seule). - Tri équipe : inclus d'abord puis exclus, alphabétique. Thème unifié : - Toggle topbar et sélecteur Apparence écrivent dans la même clé cfg.theme. - Mode 'Auto' résolu en JS via prefers-color-scheme (le CSS n'avait pas de bloc @media, ce qui faisait retomber sur clair même en OS sombre). - Listener matchMedia pour bascule live en mode auto. Conflits absence/réservation × intervention : - Si une intervention est planifiée pendant qu'un tech a une absence (full-day ou partielle) ou une réservation au même créneau, sa carte (row classique + mini-card horizontale) est peinte en rouge plein. Permissions runtime pour domaines : - manifest.json : optional_host_permissions [https://*/*]. - chrome.permissions.request() au save d'un domaine custom dans Paramètres → EasyVista. Refus → toast d'avertissement. Synchronisation des heures EV : - Helpers getDayBounds() côté background. day_start_hour, day_end_hour, begin_hour, end_hour des requêtes EV reflètent désormais cfg.dayStart et cfg.dayEnd. Avant : 8/18/19 hardcodés. Vue horizontale : - Popups au survol/clic limités à dessous/dessus (pas de gauche/droite car la sidebar à gauche et la timeline pleine largeur les rendent inutilisables). Ménage de code : - Suppression de CACHE_DAYS, LS_THEME, commentaire historique sur initAdminMenu(). Aucun symbole orphelin restant. Contact mis à jour : [email protected]
This commit is contained in:
+40
-1
@@ -896,6 +896,43 @@ html.view-horizontal .timeline-noon {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
v2026.5.41 : Conflit absence/réservation × intervention.
|
||||
Quand une intervention est planifiée pendant qu'un tech est marqué
|
||||
"absent" (toute la journée ou demi-journée) ou qu'il a une réservation
|
||||
sur le même créneau, on signale visuellement le conflit en peignant la
|
||||
carte de l'intervention en rouge plein. S'applique à la row classique
|
||||
(.intervention-v2) ET à la mini-card (.iv-mini-card) en vue horizontale.
|
||||
========================================================================== */
|
||||
.intervention-v2.intervention-conflict-absence,
|
||||
.iv-mini-card.intervention-conflict-absence {
|
||||
background: #b03030 !important;
|
||||
color: #ffffff !important;
|
||||
border-color: #7a1f1f !important;
|
||||
}
|
||||
.intervention-v2.intervention-conflict-absence::before {
|
||||
/* Renforce la barre gauche pour rester cohérent avec le rouge plein. */
|
||||
background: #7a1f1f !important;
|
||||
}
|
||||
.intervention-v2.intervention-conflict-absence .intervention-dot,
|
||||
.intervention-v2.intervention-conflict-absence .iv-status-check,
|
||||
.intervention-v2.intervention-conflict-absence a,
|
||||
.iv-mini-card.intervention-conflict-absence .iv-mini-card-bar,
|
||||
.iv-mini-card.intervention-conflict-absence .iv-mini-time-vertical,
|
||||
.iv-mini-card.intervention-conflict-absence .iv-mini-card-text {
|
||||
color: #ffffff !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
/* La barre couleur catégorie à gauche de la mini-card devient un blanc
|
||||
semi-transparent pour rester visible sur le rouge. */
|
||||
.iv-mini-card.intervention-conflict-absence .iv-mini-card-bar {
|
||||
background: rgba(255, 255, 255, 0.45) !important;
|
||||
}
|
||||
.intervention-v2.intervention-conflict-absence:hover,
|
||||
.iv-mini-card.intervention-conflict-absence:hover {
|
||||
background: #c44040 !important;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Interventions — layout v2 (heures verticales)
|
||||
========================================================================== */
|
||||
@@ -1482,7 +1519,9 @@ html.view-horizontal .timeline-noon {
|
||||
position: fixed;
|
||||
bottom: 20px;
|
||||
right: 20px;
|
||||
z-index: 200;
|
||||
/* v2026.5.41 : au-dessus du modal-overlay du panel admin (z-index 10000)
|
||||
pour que les toasts de feedback restent visibles avec le flou en arrière. */
|
||||
z-index: 11000;
|
||||
display: flex;
|
||||
flex-direction: column-reverse; /* les nouveaux en bas, les anciens au-dessus */
|
||||
gap: 8px;
|
||||
|
||||
Reference in New Issue
Block a user