wiki(Versions): v2026.5.45 — dock latéral, fix verdicts ghost, multi-onglets EZV

2026-05-08 16:35:44 +02:00
parent 7aa44aa438
commit 69dd660d89
+54 -3
@@ -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.