diff --git a/Versions.md b/Versions.md index b7a1015..fa99adc 100644 --- a/Versions.md +++ b/Versions.md @@ -6,7 +6,7 @@ L'extension a connu **3 systèmes de versionning successifs** : |---|---|---| | Avril 2026 (jeudi 16) | Versions de base | `1.0.0`, `2.0.0`, `3.0.0` | | Avril 2026 | SemVer classique | `4.1.3`, `4.2.8`, `5.0.12` | -| Avril 2026 → maintenant | **`ANNÉE.MAJEURE.PATCH`** | `2026.5.16` → `2026.5.44` | +| Avril 2026 → maintenant | **`ANNÉE.MAJEURE.PATCH`** | `2026.5.16` → `2026.5.45` | --- @@ -14,7 +14,8 @@ L'extension a connu **3 systèmes de versionning successifs** : | Date | Version | Résumé en 1 ligne | |---|---|---| -| 1 mai 2026 | **`v2026.5.44`** (latest) | Refonte topbar + personnalisation Apparence (couleur + 28 polices) + onboarding équipe + fix #1 | +| 8 mai 2026 | **`v2026.5.45`** (latest) | Dock latéral drag&drop + fix verdicts ghost (parser dates) + multi-onglets EZV (#4) + 5 autres issues (#3 #5 #6 #7 #8) | +| 1 mai 2026 | **`v2026.5.44`** | Refonte topbar + personnalisation Apparence (couleur + 28 polices) + onboarding équipe + fix #1 | | 27 avril 2026 | `v2026.5.43` | Fix Firefox menu dock + stabilité popup pin/unpin | | 27 avril 2026 | `v2026.5.42` | Nettoyage de commentaires + exemples génériques | | 27 avril 2026 | `v2026.5.41` | Suppression hardcodes runtime + UX admin + thème unifié + conflits absence/intervention | @@ -33,7 +34,57 @@ L'extension a connu **3 systèmes de versionning successifs** : ## Versions notables -### `v2026.5.44` (latest) — Refonte topbar, personnalisation Apparence, onboarding équipe, fix #1 +### `v2026.5.45` (latest, 8 mai 2026) — Dock latéral drag&drop, fix verdicts ghost, multi-onglets EZV résolu + +**Dock latéral drag&drop** + +Le dock à droite permet de mettre des interventions de côté pendant la navigation entre les jours, puis de les redéposer plus tard. + +- Apparition graduelle pendant un drag : peep-min (sans contenu), peep (avec cartes, ~50 % visibles), expanded (au survol ou au bord droit). +- **Délai 500 ms** pour expand/collapse pour éviter le flicker quand le curseur effleure le bord du dock. Wrapper debouncé qui s'auto-annule si l'intention change avant 500 ms. +- **Card du dock** : référence en gras + durée prévue (`1h`, `1h30`, `45min`) calculée depuis `startTime` / `endTime` du snapshot, avec une **barre verticale 4 px** sur la gauche dans la couleur de la catégorie d'intervention. Fond transparent. La couleur est lue directement sur la classe `color-*` de la card source du planning. +- **Bouton de retrait `×`** : repositionné dans la card (`top: 2px / right: 2px`). **Appui long 2 s** avec animation `conic-gradient` (`@property --hold`). Un clic simple ne fait rien (anti-clic accidentel). +- **Drag depuis le dock** : retrait différé à l'activation effective du drag (5 px). Un clic-relâche sans bouger ne sort plus la carte. Ghost flottant **sans heure à gauche**. Drop sur tech → modal de confirmation. Drop hors zone / Échap / sur le même slot d'origine → restauration dans le dock. +- **Pas de scrollbar horizontale** en bas du dock (`overflow-x: hidden` explicite). **Pas de clic-through** dans la zone du dock en peep / expanded. +- **Pas de placeholder fantôme** pendant un drag-from-dock : fallback sur `iv._dockHtml` (HTML capturé à l'add) puisque la card source n'existe plus dans le planning courant. + +**Verdicts ghost — fix critique parser de fiche** + +Une intervention terminée par le tech mais dont la fiche était passée en statut « Redirigé » / « Finalisation » / « Exécution » était à tort marquée comme « annulée » et retirée du planning, parce que le parser cherchait les dates aux indices fixes `[8]` / `[9]` / `[11]` du tableau `rows` alors que le layout EV récent les place en `[6]` / `[7]` / `[9]`. + +- **Détection robuste** : scan des valeurs pour le pattern `DD/MM/YYYY HH:MM:SS` et garde des 2 dernières occurrences comme (création, fin). Description = 2 colonnes après la date de fin. Survit aux variations de layout EV. +- **Décorrélation logs / KEEP-forcé** : nouvelle case dédiée « Garder les disparitions » dans Paramètres → Diagnostics, indépendante des « Logs verbeux ». Persistée dans `admin_config.keepDisappearedGhosts` (défaut OFF). Mode prod par défaut → verdict `REMOVE` appliqué. +- **Conditions de retrait** : statut EV ∈ Annulé/Supprimé, OU statut clos sans action du tech avec commentaire, OU action sans commentaire `login: …`. +- **Garde KEEP par sécurité** sur tous les chemins d'erreur (pas de session, JSON `basicAutoComplete` invalide, exception réseau, fiche tronquée < 20 000 octets, exception non rattrapée). + +**Drag&drop bloqué pour les interventions non-déplaçables** + +`_canRescheduleIv` refuse maintenant explicitement le drag pour : + +- iv en verdict `terminated-pending` (gris « fait »). +- iv en verdict `terminated-clos` (vert ✓✓). +- iv dont le statut EV est dans `CLOSED_STATUS` ou `RESOLVED_STATUS`. +- iv en cours d'analyse de disparition (`_disappearChecking`). + +**Popups dépinglés — auto-fermeture** + +- Auto-fermeture du popup `.soft-unpinned` quand la souris quitte sa zone et celle des cards liées de la même iv (300 ms de grâce, fade-out 180 ms). Hit-test géométrique `mousemove` document. +- Pause du hit-test pendant un drag de planning en cours (`reschedule-dragging`). + +**Tooltip / contact nettoyé** + +Le contact ne contient plus les labels « fiche » (`Étage`, `Bureau`, `Service`, `Matériel`, `Problème`, `TFS`, `Date`, `Heure`, `Lieu`, `Bénéficiaire`, `Nom utilisateur`) qui se collent parfois au contact à cause de séparateurs perdus dans la source EV. `extractContacts` détecte 2 patterns : label suivi de `:`, ou lettre minuscule collée à un label en majuscule. Côté tooltip, `formatActionTextMultiline` insère un saut de ligne avant chaque label, y compris quand le `:` manque mais que le label est collé à un mot minuscule. + +**Issues résolues — détails par ticket** + +- **#3** — Coches « Absences récurrentes » : merge propre au lieu d'écrasement. +- **#4** — Perte session EZV multi-onglets : permission optionnelle `cookies` + listener `chrome.cookies.onChanged` qui broadcaste un `cookieChanged` au viewer. +- **#5** — Copie référence depuis popup épinglée : handler `copy-ref` ajouté. +- **#6** — Popup épinglée premier plan au clic : recalcul du z-index sur `mousedown`. +- **#7** — Notification « +2 min » fantôme : reset des flags slide-alert au retour de la prolongation. +- **#8** — Compteur pompier : un pompier absent toute la journée est exclu du compteur. + +### `v2026.5.44` — Refonte topbar, personnalisation Apparence, onboarding équipe, fix #1 **Refonte topbar (vue classique)** - Sélecteur de date du planning **ancré au centre absolu** (`position: absolute; left: 50%; transform: translate(-50%, -50%)`) — il ne se décale plus quand le bouton « ✕ Arrêter » apparaît à droite pendant un rafraîchissement. Auparavant il était centré via `margin-left: auto; margin-right: auto;` dans le flex flow → l'arrivée du bouton Arrêter rétrécissait `topbar-left` et la date glissait vers la gauche.