Public Access
Documentation : README réécrit, CHANGELOG et LICENSE nettoyés
- README : présentation courte, installation, liens vers le wiki, développement. - CHANGELOG : nom d'un tiers et marqueurs internes retirés, auteur Quentin Rouiller ; contenu des versions inchangé. - LICENSE : Copyright (c) 2026 Quentin Rouiller.
This commit is contained in:
+70
-73
@@ -1,7 +1,7 @@
|
||||
# CHANGELOG — Extension Planification EasyVista Canton de Vaud
|
||||
# CHANGELOG : extension Planification (EasyVista, Canton de Vaud)
|
||||
|
||||
> Ce changelog documente l'évolution de l'extension Chrome/Firefox "Planification"
|
||||
> développée par Quentin pour les coordinateurs DGNSI (Canton de Vaud).
|
||||
> développée par Quentin Rouiller pour les coordinateurs DGNSI (Canton de Vaud).
|
||||
>
|
||||
> Les versions documentées ci-dessous sont celles dont les détails sont connus.
|
||||
> Pour les versions plus anciennes, l'analyse du code source permet de
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
---
|
||||
|
||||
## v2026.5.50 — Texte des actions rétabli (format EasyVista du 29.09.2026), catégories Roll Out et Déménagement
|
||||
## v2026.5.50 : Texte des actions rétabli (format EasyVista du 29.09.2026), catégories Roll Out et Déménagement
|
||||
|
||||
> Correctif urgent : depuis le 29 septembre 2026, le texte complet des actions ne s'affichait plus. EasyVista renvoie désormais les actions avec une cellule de moins, et l'extension les lisait par position. Elle les retrouve maintenant par leur contenu. Cette version ajoute aussi deux catégories de réservation.
|
||||
|
||||
@@ -31,24 +31,24 @@
|
||||
|
||||
---
|
||||
|
||||
## v2026.5.49 — Sécurité hors session, onglet Email clarifié, lecture au défilement, affichage et synchronisation fiabilisés
|
||||
## v2026.5.49 : Sécurité hors session, onglet Email clarifié, lecture au défilement, affichage et synchronisation fiabilisés
|
||||
|
||||
> Cette version renforce la **sécurité** quand aucune session EasyVista n'est active, clarifie l'**onglet Email** (déplacement et annulation bien séparés, aperçu de la copie), améliore la **lecture du planning au défilement** (le nom du technicien, son compteur et la frise horaire restent visibles), et corrige en profondeur l'**affichage de la reconnexion** ainsi que plusieurs comportements de la synchronisation et des réservations.
|
||||
> Cette version renforce la **sécurité** quand aucune session EasyVista n'est active, clarifie l'**onglet Email** (déplacement et annulation bien séparés, aperçu de la copie), améliore la **lecture du planning au défilement** (le nom du technicien, son compteur et la frise horaire restent visibles), et corrige l'**affichage de la reconnexion** ainsi que plusieurs comportements de la synchronisation et des réservations.
|
||||
|
||||
### Sécurité et confidentialité (sans session EasyVista)
|
||||
|
||||
- **Aucune écriture dans le dossier partagé sans session active** : tant que vous n'êtes pas identifié dans EasyVista, l'extension travaille sur le **cache local seul** et ne touche plus au dossier partagé. Un ancien cache reste consultable, mais il n'est plus alimenté ni relu depuis le partage.
|
||||
- **Aucune modification sans session active** : déplacement d'intervention, suppression, création ou édition d'absence, réservation — tout est bloqué proprement tant que la session n'est pas rétablie, avec un message clair. Cela évite d'écrire des données incohérentes qui seraient ensuite propagées aux autres postes.
|
||||
- **Aucune modification sans session active** : déplacement d'intervention, suppression, création ou édition d'absence, réservation : tout est bloqué proprement tant que la session n'est pas rétablie, avec un message clair. Cela évite d'écrire des données incohérentes qui seraient ensuite propagées aux autres postes.
|
||||
|
||||
### Onglet Email clarifié
|
||||
|
||||
- **Déplacement et annulation séparés** : l'onglet Email présente désormais deux sections distinctes (déplacement d'une intervention / annulation-suppression), chacune avec sa case d'activation et son propre modèle de message.
|
||||
- **Copie (CC) commune avec aperçu en direct** : un bloc « Copie (CC) » en tête montre, sous forme de puces, les adresses effectivement retenues (les adresses invalides sont barrées) — vous voyez immédiatement à qui la copie sera envoyée.
|
||||
- **Copie (CC) commune avec aperçu en direct** : un bloc « Copie (CC) » en tête montre, sous forme de puces, les adresses effectivement retenues (les adresses invalides sont barrées) : vous voyez immédiatement à qui la copie sera envoyée.
|
||||
- **Variables cliquables en colonnes** pour les deux modèles (déplacement et annulation), rangées par thème pour une insertion rapide.
|
||||
|
||||
### Lecture du planning au défilement (vue classique)
|
||||
|
||||
- **En-tête de carte collant** : quand vous faites défiler une carte, le **nom du technicien**, son **nombre d'interventions** et la **frise horaire** restent visibles en haut — plus besoin de remonter pour savoir de qui il s'agit.
|
||||
- **En-tête de carte collant** : quand vous faites défiler une carte, le **nom du technicien**, son **nombre d'interventions** et la **frise horaire** restent visibles en haut : plus besoin de remonter pour savoir de qui il s'agit.
|
||||
- **Survol d'une pause** : passer la souris sur une pause met la **frise horaire en évidence** (sans faner les interventions), pour bien distinguer le créneau libre.
|
||||
|
||||
### Affichage et reconnexion fiabilisés
|
||||
@@ -66,17 +66,17 @@
|
||||
|
||||
---
|
||||
|
||||
## v2026.5.48 — Notification par email des déplacements, onglet Email, fiches réservation fiables entre postes, recherche et reconnexion durcies
|
||||
## v2026.5.48 : Notification par email des déplacements, onglet Email, fiches réservation fiables entre postes, recherche et reconnexion durcies
|
||||
|
||||
> Cette version apporte une vraie nouveauté : après le déplacement d'une intervention (autre jour ou autre technicien), l'extension peut ouvrir un **brouillon d'email pré-rempli** dans votre application mail pour prévenir les techniciens concernés — l'envoi reste un geste manuel. Elle corrige aussi en profondeur la circulation des informations de réservation entre postes, le bouton de reconnexion quand il n'y a aucun cache, et plusieurs comportements de la recherche.
|
||||
> Après le déplacement d'une intervention (autre jour ou autre technicien), l'extension peut ouvrir un **brouillon d'email pré-rempli** dans votre application mail pour prévenir les techniciens concernés : l'envoi reste un geste manuel. Elle corrige aussi la circulation des informations de réservation entre postes, le bouton de reconnexion quand il n'y a aucun cache, et plusieurs comportements de la recherche.
|
||||
|
||||
### Email après un déplacement (nouveau)
|
||||
|
||||
- **Brouillon automatique** : après un déplacement vers un **autre jour** ou un **autre technicien** (fenêtre de modification ou glisser-déposer), un brouillon pré-adressé aux deux techniciens s'ouvre dans l'application mail (ex. Outlook). Un simple ajustement d'heures n'ouvre rien. **Rien n'est envoyé automatiquement.**
|
||||
- **Case « Prévenir les techniciens par email »** dans les fenêtres de déplacement : quand l'option est active, la décocher ne vaut que pour **ce déplacement-là** — le prochain déplacement la retrouve cochée. L'option ne se désactive durablement que dans les Paramètres.
|
||||
- **Case « Prévenir les techniciens par email »** dans les fenêtres de déplacement : quand l'option est active, la décocher ne vaut que pour **ce déplacement-là** : le prochain déplacement la retrouve cochée. L'option ne se désactive durablement que dans les Paramètres.
|
||||
- **Destinataires** séparés par « ; » (compatibilité Outlook) ; si une adresse manque, le brouillon s'ouvre quand même, à compléter directement dans l'email (une notification indique qui manque).
|
||||
- **Nouvel onglet « Email »** dans les Paramètres : option, et **modèle du message** entièrement personnalisable (sujet + texte), avec **variables cliquables** rangées par thème (Intervention / Avant / Après) et **aperçu en direct** sur un exemple. Le modèle de base présente le déplacement en deux blocs AVANT / APRÈS bien lisibles.
|
||||
- **Adresses des techniciens** dans l'onglet Équipe (colonne Email, boutons au-dessus de la liste) : bouton « **Récupérer les emails** » qui remplit les adresses manquantes depuis l'annuaire EasyVista — et **complète au passage un nom affiché tronqué** (ex. « Martins » → « De Almeida Martins »), avec un garde-fou contre les homonymes. Une adresse saisie à la main n'est jamais écrasée. Champ vide = adresse proposée `prenom.nom@domaine` (domaine réglable au même endroit, appliqué à tous).
|
||||
- **Adresses des techniciens** dans l'onglet Équipe (colonne Email, boutons au-dessus de la liste) : bouton « **Récupérer les emails** » qui remplit les adresses manquantes depuis l'annuaire EasyVista, et **complète au passage un nom affiché tronqué**, avec un garde-fou contre les homonymes. Une adresse saisie à la main n'est jamais écrasée. Champ vide = adresse proposée `prenom.nom@domaine` (domaine réglable au même endroit, appliqué à tous).
|
||||
|
||||
### Informations de réservation fiables entre postes
|
||||
|
||||
@@ -92,13 +92,13 @@
|
||||
|
||||
---
|
||||
|
||||
## v2026.5.47 — Vue « échelle de temps exacte » : aide à la saisie, erreurs mises en évidence, corrections de fiabilité
|
||||
## v2026.5.47 : Vue « échelle de temps exacte », aide à la saisie, erreurs mises en évidence, corrections de fiabilité
|
||||
|
||||
> Cette version peaufine la vue horizontale « échelle de temps exacte » : un vrai retour visuel accompagne la pose d'un rendez-vous ou d'une absence, et les erreurs de saisie (rendez-vous dont le début est égal à la fin) sont désormais bien visibles et signalées. Elle corrige aussi plusieurs problèmes de navigation entre dates et de synchronisation du dossier partagé, réorganise le panneau de synchronisation, et ajoute un bouton de test de la communication avec le script du poste.
|
||||
> Cette version peaufine la vue horizontale « échelle de temps exacte » : un retour visuel accompagne la pose d'un rendez-vous ou d'une absence, et les erreurs de saisie (rendez-vous dont le début est égal à la fin) sont désormais bien visibles et signalées. Elle corrige aussi plusieurs problèmes de navigation entre dates et de synchronisation du dossier partagé, réorganise le panneau de synchronisation, et ajoute un bouton de test de la communication avec le script du poste.
|
||||
|
||||
### Vue « échelle de temps exacte » — aide à la saisie
|
||||
### Vue « échelle de temps exacte » : aide à la saisie
|
||||
|
||||
- **Retour visuel au survol d'un créneau libre** : une zone surlignée suit la souris et affiche **l'heure exacte** (début → fin) du rendez-vous ou de l'absence qu'un clic droit poserait. Une bulle fixe, en haut de la ligne, rappelle la **plage libre et la durée disponible** du créneau (« Libre 12:00–18:00 / 6 h disponible »). Elle se place toujours sur un espace libre — jamais par-dessus un rendez-vous — et ne masque pas l'heure choisie.
|
||||
- **Retour visuel au survol d'un créneau libre** : une zone surlignée suit la souris et affiche **l'heure exacte** (début → fin) du rendez-vous ou de l'absence qu'un clic droit poserait. Une bulle fixe, en haut de la ligne, rappelle la **plage libre et la durée disponible** du créneau (« Libre 12:00–18:00 / 6 h disponible »). Elle se place toujours sur un espace libre, jamais par-dessus un rendez-vous, et ne masque pas l'heure choisie.
|
||||
- **Erreurs de saisie mises en évidence** : un rendez-vous dont le **début est égal à la fin** (ex. 10:00 → 10:00) est désormais affiché en **rouge** et reste **visible** (avant, il disparaissait sur l'échelle exacte). Survoler une telle zone pour en poser un autre affiche un **avertissement** et **empêche** la création tant que l'erreur n'est pas corrigée.
|
||||
- **Interventions courtes visibles** : une intervention de 1 à 5 minutes garde une largeur minimale et reste visible.
|
||||
- **Zone du nom** : le fond du nom du technicien remplit toute la hauteur de la ligne (nom centré).
|
||||
@@ -109,7 +109,7 @@
|
||||
- **Navigation rapide entre dates** : le jour que l'on quitte ne peut plus écraser le jour qui vient de s'afficher.
|
||||
- **Technicien retiré de l'équipe** : n'apparaît plus sur les jours relus depuis le dossier partagé.
|
||||
- **Synchronisation du dossier partagé** : correction d'un blocage où l'écriture n'aboutissait jamais (conflit permanent entre l'index et le fichier relu) ; l'index se répare de lui-même.
|
||||
- **Jour présent au dossier mais pas en local** : lu depuis le dossier d'emblée — plus de re-remplissage visible inutile.
|
||||
- **Jour présent au dossier mais pas en local** : lu depuis le dossier d'emblée : plus de re-remplissage visible inutile.
|
||||
- **Absences** : plus de doublon « absence récurrente » + « vraie absence » le même jour ; le fond des cartes d'absence remplit toute la carte en échelle exacte.
|
||||
- **Réservations multiples le même jour** : les deux créneaux coexistent ; saisir le n° d'intervention dans le formulaire remplit automatiquement ville, rue et catégorie.
|
||||
- **Barre de progression** et **message de reconnexion** : bien positionnés en vue horizontale (barre en haut de la sidebar, message centré dans le contenu).
|
||||
@@ -122,16 +122,16 @@
|
||||
|
||||
---
|
||||
|
||||
## v2026.5.46 — Refonte de la couche données, vue « échelle de temps exacte », session fiabilisée, réservations enrichies
|
||||
## v2026.5.46 : Refonte de la couche données, vue « échelle de temps exacte », session fiabilisée, réservations enrichies
|
||||
|
||||
> Version majeure par son contenu : la couche données est entièrement refondue (store unifié par jour, un seul verdict par intervention, synchronisation du dossier partagé en sous-dossier `v2`), une nouvelle disposition « échelle de temps exacte » s'ajoute à la vue horizontale, la détection de session EasyVista est fiabilisée de bout en bout, et les réservations portent enfin leurs informations (n°, lieu, catégorie) sur tous les postes. Le script PowerShell du dossier partagé est désormais publié avec l'extension et téléchargeable depuis les Paramètres.
|
||||
> Version majeure par son contenu : la couche données est entièrement refondue (store unifié par jour, un seul verdict par intervention, synchronisation du dossier partagé en sous-dossier `v2`), une nouvelle disposition « échelle de temps exacte » s'ajoute à la vue horizontale, la détection de session EasyVista est fiabilisée de bout en bout, et les réservations portent leurs informations (n°, lieu, catégorie) sur tous les postes. Le script PowerShell du dossier partagé est désormais publié avec l'extension et téléchargeable depuis les Paramètres.
|
||||
|
||||
### Couche données v2 (refonte complète)
|
||||
|
||||
- **Un store par jour** (`planv2_<date>`) : liste plate d'interventions dédoublonnées par identité stable (requestId > actionId > réf) — la seule source de vérité ; le rendu, le cache local, le dossier partagé et EasyVista n'en sont que des projections ou des sources.
|
||||
- **Un store par jour** (`planv2_<date>`) : liste plate d'interventions dédoublonnées par identité stable (requestId > actionId > réf) : la seule source de vérité ; le rendu, le cache local, le dossier partagé et EasyVista n'en sont que des projections ou des sources.
|
||||
- **Un seul verdict par intervention** (`live / done / suspended / closed / gone / moved / unknown`) qui remplace les anciens marqueurs dispersés (ghost, statuts de disparition, diagnostics).
|
||||
- **Une seule fusion** (modèle vie/mort) utilisée partout : EV↔store, local↔dossier, import. Une vie strictement postérieure à une mort lève les tombstones (réapparition EV autoritaire).
|
||||
- **Dossier partagé** : transport natif inchangé (verrous + écriture atomique + compare-and-swap), fichiers v2 dans le sous-dossier `v2` du partage — les postes en ancienne version n'interfèrent plus. Ordre des sources refondu : EasyVista s'affiche immédiatement, le dossier habille les cartes sans re-télécharger, le fetch ne traite que ce qui manque, l'enrichissement est repoussé au dossier en fin de chargement.
|
||||
- **Dossier partagé** : transport natif inchangé (verrous + écriture atomique + compare-and-swap), fichiers v2 dans le sous-dossier `v2` du partage : les postes en ancienne version n'interfèrent plus. Ordre des sources refondu : EasyVista s'affiche immédiatement, le dossier habille les cartes sans re-télécharger, le fetch ne traite que ce qui manque, l'enrichissement est repoussé au dossier en fin de chargement.
|
||||
- Les interventions déplacées par l'extension portent un verdict « déplacée » propagé (plus d'analyse inutile), avec fenêtre anti cache-serveur EV.
|
||||
- Les disparues en attente de verdict restent affichées (grisées, spinner) au lieu de disparaître puis réapparaître.
|
||||
- Outil réservé à l'auteur (onglet Test) : conversion de l'ancien cache dossier v1 vers le modèle v2, sans modifier les anciens fichiers.
|
||||
@@ -143,7 +143,7 @@
|
||||
- Le bandeau timeline disparaît : chaque intervention/réservation/absence partielle est posée **en position réelle** sur une bande continue de la plage affichée (position et largeur proportionnelles à l'heure et à la durée).
|
||||
- **Règle des heures fixe** en haut (reste collée au défilement), **lignes verticales continues** sur toute la hauteur du tableau : trait net à chaque heure, pointillé discret aux demi-heures, césure rayée à midi ; les traits passent derrière les bulles et sautent les techniciens absents.
|
||||
- **Ligne rouge « maintenant »** continue sur toute la hauteur (jour courant), reposée instantanément à chaque rendu ; elle saute aussi les absents.
|
||||
- **Chevauchements** : les éléments qui se recouvrent s'empilent en sous-lignes de même hauteur — la zone du technicien s'agrandit seulement dans ce cas ; tolérance de 10 minutes pour ne pas empiler de simples enchaînements.
|
||||
- **Chevauchements** : les éléments qui se recouvrent s'empilent en sous-lignes de même hauteur : la zone du technicien s'agrandit seulement dans ce cas ; tolérance de 10 minutes pour ne pas empiler de simples enchaînements.
|
||||
- **Cartes** : fond neutre, le bord gauche porte la couleur de catégorie et sert de **poignée** (cliquer = fenêtre de modification, glisser = déplacer ; présente sur toutes les cartes, déplacement bloqué pour les faites/clôturées, réservations et absences). Numéro d'intervention en tête, ville + adresse groupées ; cartes étroites : texte compact (ville + fin d'adresse, « Rue de l'Exemple 5 » → « Exemple 5 »), jamais vides tant qu'il reste de la place.
|
||||
- **Réservations** : affichent sous l'intitulé le lieu renseigné à la création, sinon le nom de la personne qui a réservé.
|
||||
- **Zones libres** : survol = « Libre HH:MM–HH:MM » (y compris sur les journées totalement vides), clic droit = Réservation/Absence à l'heure du curseur, dépôt du drag précis (pas de 30 min) avec marqueur vert sur toute la bande.
|
||||
@@ -151,16 +151,16 @@
|
||||
|
||||
### Session EasyVista fiabilisée (fin des faux « déconnecté »)
|
||||
|
||||
- **Cookie réécrit ≠ supprimé** : le navigateur émet toujours une « suppression » technique juste avant de reposer un cookie mis à jour — l'extension basculait à tort en « session expirée » à chaque rafraîchissement du PHPSESSID (permission cookies active). Désormais ignoré ; une vraie suppression attend 3 s (relog possible) puis vérifie au serveur avant d'alarmer.
|
||||
- **Expiration sur preuve uniquement** : une erreur transitoire (réseau, HTTP 5xx) ne déclenche plus la bannière — seule une preuve le fait (page de login à la sonde, temps restant nul, plus aucun PHPSESSID) ; sinon nouvel essai dans 30 s.
|
||||
- **Onglet EasyVista facultatif** avec la permission cookies : le cookie suffit aux requêtes — fermer l'onglet EV ne « perd » plus la session.
|
||||
- **Cookie réécrit ≠ supprimé** : le navigateur émet toujours une « suppression » technique juste avant de reposer un cookie mis à jour : l'extension basculait à tort en « session expirée » à chaque rafraîchissement du PHPSESSID (permission cookies active). Désormais ignoré ; une vraie suppression attend 3 s (relog possible) puis vérifie au serveur avant d'alarmer.
|
||||
- **Expiration sur preuve uniquement** : une erreur transitoire (réseau, HTTP 5xx) ne déclenche plus la bannière : seule une preuve le fait (page de login à la sonde, temps restant nul, plus aucun PHPSESSID) ; sinon nouvel essai dans 30 s.
|
||||
- **Onglet EasyVista facultatif** avec la permission cookies : le cookie suffit aux requêtes ; fermer l'onglet EV ne « perd » plus la session.
|
||||
- **Contre-vérification HTTP** : avant de classer un 401/403/404 en « session expirée », l'endpoint d'autorité `session_time` est sondé ; si la session vit, l'erreur est reclassée « EV inaccessible » (transitoire).
|
||||
- **Compteur calé sur le serveur** : recalage périodique sur la vraie valeur EasyVista (au démarrage, toutes les 90 s, au retour de visibilité), plus de recalage erroné sur l'expiration du cookie ; badge session en direct (MM:SS) avec « Prolonger la session » dans le popup.
|
||||
|
||||
### Réservations
|
||||
|
||||
- **Modal enrichie** : préréglages Matin/Après-midi/Journée puis heures ; champs n° d'intervention, ville, rue, catégorie ; recherche automatique des informations dans EasyVista à partir du n° (catégorie et localisation pré-remplies).
|
||||
- **Meta persistante et partagée** : ces informations survivent aux rafraîchissements (EV ne les stocke pas) et remontent désormais au dossier partagé — tous les postes voient le n°, le lieu et la catégorie d'une réservation, quel que soit le poste qui l'a créée ou modifiée.
|
||||
- **Meta persistante et partagée** : ces informations survivent aux rafraîchissements (EV ne les stocke pas) et remontent désormais au dossier partagé : tous les postes voient le n°, le lieu et la catégorie d'une réservation, quel que soit le poste qui l'a créée ou modifiée.
|
||||
- Édition d'une réservation (heures ou infos seules), suppression, tooltip détaillé avec ouverture/copie du n° lié.
|
||||
|
||||
### Pompier
|
||||
@@ -174,7 +174,7 @@
|
||||
|
||||
### Douchette
|
||||
|
||||
- **Vraie confirmation EasyVista** : l'envoi vérifie le marqueur de prise en compte renvoyé par EV — toast « confirmé par EasyVista » fiable.
|
||||
- **Vraie confirmation EasyVista** : l'envoi vérifie le marqueur de prise en compte renvoyé par EV : toast « confirmé par EasyVista » fiable.
|
||||
- **Resynchronisation automatique** après un déplacement d'intervention (jour source + jour cible, regroupés si même jour), avec compte-rendu clair et relance possible.
|
||||
|
||||
### Recherche
|
||||
@@ -204,18 +204,18 @@
|
||||
|
||||
---
|
||||
|
||||
## v2026.5.45 — Dock latéral drag&drop, fix verdicts ghost, multi-onglets EZV résolu
|
||||
## v2026.5.45 : Dock latéral drag&drop, fix verdicts ghost, multi-onglets EZV résolu
|
||||
|
||||
> Refonte de l'expérience drag&drop avec dock latéral pour parquer des interventions entre les jours, fix critique du parser de fiches qui marquait à tort des interventions terminées comme annulées, résolution des 6 issues ouvertes (multi-onglets EZV, absences récurrentes, popups épinglés, pompier absent), et nombreux ajustements d'ergonomie.
|
||||
|
||||
### Issues résolues
|
||||
|
||||
- **#3** — Coches « Absences récurrentes » : merge propre avec l'état stocké au lieu d'écrasement, les coches sont retenues lors d'un changement de groupe ou d'une réouverture des paramètres.
|
||||
- **#4** — Perte de session EZV multi-onglets : permission optionnelle `cookies` + listener `cookieChanged` côté background, toggle dans Paramètres → Diagnostics. La session reste valable même après reconnexion et fermeture d'un onglet EZV.
|
||||
- **#5** — Bouton de copie de référence dans une popup épinglée : handler `copy-ref` ajouté.
|
||||
- **#6** — Popup épinglée au premier plan : clic sur une popup recalcule le z-index pour la passer au-dessus des autres.
|
||||
- **#7** — Notification « +2 min » fantôme : reset des flags d'alerte slide au retour de la prolongation.
|
||||
- **#8** — Compteur pompier : un pompier absent toute la journée est exclu du compteur.
|
||||
- **#3** Coches « Absences récurrentes » : merge propre avec l'état stocké au lieu d'écrasement, les coches sont retenues lors d'un changement de groupe ou d'une réouverture des paramètres.
|
||||
- **#4** Perte de session EZV multi-onglets : permission optionnelle `cookies` + listener `cookieChanged` côté background, toggle dans Paramètres → Diagnostics. La session reste valable même après reconnexion et fermeture d'un onglet EZV.
|
||||
- **#5** Bouton de copie de référence dans une popup épinglée : handler `copy-ref` ajouté.
|
||||
- **#6** Popup épinglée au premier plan : clic sur une popup recalcule le z-index pour la passer au-dessus des autres.
|
||||
- **#7** Notification « +2 min » fantôme : reset des flags d'alerte slide au retour de la prolongation.
|
||||
- **#8** Compteur pompier : un pompier absent toute la journée est exclu du compteur.
|
||||
|
||||
### Dock latéral drag&drop
|
||||
|
||||
@@ -228,7 +228,7 @@ Le dock à droite permet de mettre des interventions de côté pendant qu'on nav
|
||||
- Drag depuis le dock : retrait différé à l'activation effective du drag (5 px). 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.
|
||||
- Plus de scrollbar horizontale en bas du dock, plus de clic-through dans la zone autour du bouton « Tout annuler ».
|
||||
|
||||
### Verdicts ghost — fix critique
|
||||
### Verdicts ghost : fix critique
|
||||
|
||||
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 de fiche cherchait les dates d'action aux indices `[8]`/`[9]` du tableau `rows` alors que le layout EV récent les place en `[6]`/`[7]` (et la description en `[9]` au lieu de `[11]`).
|
||||
|
||||
@@ -253,7 +253,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Le contact n'inclut plus les labels « fiche » (`Étage`, `Bureau`, `Service`, `Matériel`, `Problème`, `TFS`, `Date`, `Heure`, `Lieu`, `Bénéficiaire`, `Nom utilisateur`) qui se collent parfois à la valeur du contact à cause de séparateurs perdus dans la source EV. Le tooltip insère un saut de ligne avant chaque label collé pour la lisibilité.
|
||||
|
||||
|
||||
## v2026.5.44 — Refonte topbar, personnalisation Apparence, onboarding équipe, refresh séquentiel
|
||||
## v2026.5.44 : Refonte topbar, personnalisation Apparence, onboarding équipe, refresh séquentiel
|
||||
|
||||
> Refonte visuelle de la topbar (vue classique + horizontale), nouveau panneau
|
||||
> de personnalisation (couleur de la barre du haut + police de l'application
|
||||
@@ -289,7 +289,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
le préfixe `[disparition]` dans la console F12 pour debug. En PROD
|
||||
(par défaut), les iv `cancelled` sont bien retirées comme avant.
|
||||
|
||||
### Topbar — vue classique
|
||||
### Topbar : vue classique
|
||||
|
||||
- Sélecteur de date du planning **ancré au centre absolu** : il ne se décale
|
||||
plus quand le bouton « ✕ Arrêter » apparaît à droite pendant un
|
||||
@@ -300,7 +300,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Date du planning agrandie et neutre (couleur stable, plus de bascule
|
||||
selon la date sélectionnée).
|
||||
|
||||
### Personnalisation — Paramètres → Apparence
|
||||
### Personnalisation : Paramètres → Apparence
|
||||
|
||||
- **Couleur de la barre du haut** : 12 presets cliquables (Défaut, Blanc,
|
||||
Gris clair, Anthracite, Bleu DGNSI, Marine, Vert sapin, Brique, Violet,
|
||||
@@ -381,7 +381,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
|
||||
---
|
||||
|
||||
## v2026.5.43 — Fix Firefox : positionnement menu dock + stabilité popup pin/unpin
|
||||
## v2026.5.43 : Fix Firefox, positionnement menu dock + stabilité popup pin/unpin
|
||||
|
||||
### Menu hover sur pastille du dock (popup réduit)
|
||||
- Bug Firefox uniquement : quand un popup épinglé était réduit dans la
|
||||
@@ -408,19 +408,19 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
`--border-strong` (gris discret) plutôt que `--accent` (bleu) pour
|
||||
signaler visuellement le mode "détaché". Position et taille stables.
|
||||
|
||||
## v2026.5.42 — Nettoyage de commentaires + exemples génériques
|
||||
## v2026.5.42 : Nettoyage de commentaires + exemples génériques
|
||||
|
||||
- Passage en revue des commentaires de `src/viewer.js` : les exemples qui
|
||||
illustraient le parsing des contacts/lieux/références/codes-barres ont été
|
||||
uniformisés en placeholders abstraits (`Nom1 Prénom1 +41XXXXXXXXX`,
|
||||
`SYYMMDD_NNNNN`, `XXXX_NNNNNNNN`, etc.) plutôt que des chaînes spécifiques.
|
||||
Comportement runtime strictement inchangé — uniquement de la documentation
|
||||
Comportement runtime strictement inchangé : uniquement de la documentation
|
||||
et des commentaires.
|
||||
- Mise à jour cohérente du README, du CHANGELOG et des pages wiki Versions /
|
||||
Utilisation pour utiliser les mêmes notations génériques dans les
|
||||
exemples de référence.
|
||||
|
||||
## v2026.5.41 — Suppression des hardcodes (groupe / domaines / équipe) → tout depuis l'admin
|
||||
## v2026.5.41 : Suppression des hardcodes (groupe / domaines / équipe) → tout depuis l'admin
|
||||
|
||||
### Plus aucun hardcode au runtime
|
||||
- Le groupe EasyVista, les domaines (interne/externe) et la liste des
|
||||
@@ -498,9 +498,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
`itsma.vd.ch`) restent dans `host_permissions` (toujours accordés à
|
||||
l'install), pas besoin de redemander la permission pour eux.
|
||||
|
||||
## v2026.5.40 — Vue horizontale enrichie (ref + ville + barre couleur)
|
||||
**Branche** : current
|
||||
|
||||
## v2026.5.40 : Vue horizontale enrichie (ref + ville + barre couleur)
|
||||
- En vue horizontale, chaque segment timeline d'intervention contient
|
||||
désormais :
|
||||
- Une **barre verticale couleur catégorie** à gauche (mêmes teintes que
|
||||
@@ -518,7 +516,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
généré, `Autres/` pour build.sh + meta files (LICENSE, README,
|
||||
CHANGELOG)
|
||||
|
||||
## v2026.5.39 — Séparation Matin / Après-midi + Apparence (thème, zoom, cache)
|
||||
## v2026.5.39 : Séparation Matin / Après-midi + Apparence (thème, zoom, cache)
|
||||
|
||||
### Séparation matin / après-midi
|
||||
- Séparateur visuel "MATIN" / "APRÈS-MIDI" entre les interventions
|
||||
@@ -527,7 +525,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Si une période est vide, son séparateur n'est pas affiché.
|
||||
- Caché en vue horizontale (les rows sont masquées de toute façon).
|
||||
|
||||
### Timeline — coupure midi très visible
|
||||
### Timeline : coupure midi très visible
|
||||
- Bande verticale composée d'un trait massif central (couleur --text)
|
||||
+ stripes diagonales en arrière-plan (effet "césure"). 6 px de large
|
||||
(7 px en vue horizontale). Visible immédiatement, pas de label superflu.
|
||||
@@ -547,7 +545,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
capture-info → refresh-check. Évite les déplacements au retour de
|
||||
vue horizontale.
|
||||
|
||||
### Section Apparence (admin) — refondue + en première position
|
||||
### Section Apparence (admin) : refondue + en première position
|
||||
- **Thème** : sélecteur Auto / Clair / Sombre (s'enregistre direct).
|
||||
- **Durée du cache (jours)** : configurable, défaut 7 jours, range 1-365.
|
||||
Lue par viewer.js (purge auto) ET background.js (au boot).
|
||||
@@ -556,9 +554,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
le boot.
|
||||
- Section "Apparence" est maintenant **la première** dans le panel admin.
|
||||
|
||||
## v2026.5.38 — Attribution auteur + nettoyage code
|
||||
**Branche** : current
|
||||
|
||||
## v2026.5.38 : Attribution auteur + nettoyage code
|
||||
### Attribution auteur
|
||||
- Ajout en-têtes copyright dans tous les fichiers source
|
||||
(viewer.js, viewer.html, viewer.css, background.js)
|
||||
@@ -597,7 +593,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- `planification-v2026.5.38-chromium.zip` (~144 Ko)
|
||||
- `planification-v2026.5.38-firefox.xpi` (~144 Ko, à signer sur AMO)
|
||||
|
||||
## v2026.5.37 — Refonte vue horizontale (sidebar complète)
|
||||
## v2026.5.37 : Refonte vue horizontale (sidebar complète)
|
||||
|
||||
- Topbar en haut supprimée en vue horizontale
|
||||
- User-badge + titre déplacés tout en haut de la sidebar
|
||||
@@ -613,7 +609,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Barre de rafraîchissement en overlay top-left
|
||||
- Banderole pompier masquée en vue horizontale (badge + barre rouge à gauche conservés)
|
||||
|
||||
## v2026.5.36 — Sidebar verticale en vue horizontale
|
||||
## v2026.5.36 : Sidebar verticale en vue horizontale
|
||||
- Création wrapper flex-row #horizontal-wrapper contenant [sidebar] + [main]
|
||||
- Sidebar 200px (170px sur <1400px), sticky, bg-muted
|
||||
- Déplacement physique des éléments via JS (ELEMENTS_TO_RELOCATE)
|
||||
@@ -621,7 +617,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Restauration propre en vue classique
|
||||
- Zone nom tech : 140px → 120px
|
||||
|
||||
## v2026.5.35 — Fix popup épinglé position vue horizontale + stats gauche
|
||||
## v2026.5.35 : Fix popup épinglé position vue horizontale + stats gauche
|
||||
- Fix popup épinglé qui partait en haut à gauche en vue horizontale
|
||||
- Cause : rows .intervention-v2 cachées (display: none) → getBoundingClientRect (0,0,0,0)
|
||||
- Solution : priorité 1 tooltip visible, priorité 2 segment timeline, fallback srcEl
|
||||
@@ -629,7 +625,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Position sticky, fond bg-muted, séparateurs · masqués
|
||||
- Zone nom tech 200px → 140px (vue horizontale)
|
||||
|
||||
## v2026.5.34 — Bouton 📌 restauré + badge user cliquable
|
||||
## v2026.5.34 : Bouton 📌 restauré + badge user cliquable
|
||||
- HTML : badge user toujours visible avec "?" par défaut (retiré class hidden)
|
||||
- _softUnpinPopup refait en 8 étapes loggées
|
||||
- Popup reste visible après désépinglage (plus de suppression auto au mouseleave)
|
||||
@@ -641,13 +637,13 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Fonction positionTooltipAnchored unifiée (4 candidats droite/gauche/dessous/dessus)
|
||||
- popup._linkedIv stocké pour ré-épinglage
|
||||
|
||||
## v2026.5.33 — Interactions vue horizontale différenciées
|
||||
## v2026.5.33 : Interactions vue horizontale différenciées
|
||||
- Hover segment timeline en vue horizontale → grande popup directement (openPersistentTimelinePopup)
|
||||
- Clic segment timeline en vue horizontale → ouvre fiche EasyVista
|
||||
- Popup absence en vue horizontale : hover uniquement sur badge .card-tech-badge (pas sur carte entière)
|
||||
- Vue classique : comportement inchangé
|
||||
|
||||
## v2026.5.32 — Vue horizontale togglable
|
||||
## v2026.5.32 : Vue horizontale togglable
|
||||
- Bouton ⊞ "Vue" dans popup user-badge (à côté ⚙ Paramètres)
|
||||
- Toggle Vue classique ↔ Vue horizontale persisté localStorage "view_mode"
|
||||
- HTML class "view-classic" ou "view-horizontal" sur <html>
|
||||
@@ -657,29 +653,30 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Timeline horizontale pleine largeur
|
||||
- Stats rapides .tech-row-stats ajoutés au header (nb interv, Xm · Ya)
|
||||
|
||||
## v2026.5.31 — Sarcelle pour absence récurrente (REJETÉ par utilisateur)
|
||||
## v2026.5.31 : Sarcelle pour absence récurrente (essai abandonné)
|
||||
- Couleur absence récurrente (jour fixe) : sarcelle foncée #0f766e / soft #ccfbf1
|
||||
- Variables --c-recurring, --c-recurring-soft
|
||||
- Layout 4 colonnes forcées + scroll interne cartes (REJETÉ : "scroll en continu")
|
||||
- Layout 4 colonnes forcées + scroll interne cartes
|
||||
- Essai abandonné dans les versions suivantes.
|
||||
|
||||
## v2026.5.30 — Absence récurrente cyan + mode compact 24"
|
||||
## v2026.5.30 : Absence récurrente cyan + mode compact 24"
|
||||
- Absences récurrentes (configurées par tech) en cyan
|
||||
- Mode compact @media (max-width: 1920px) avec grid-template-columns: repeat(4, 1fr)
|
||||
|
||||
## v2026.5.29 — Contraste++ + footer
|
||||
## v2026.5.29 : Contraste++ + footer
|
||||
- Contrastes encore plus forts (text-muted #d0d5de dark, #2e3642 light)
|
||||
- Footer FRS/version : 13px badge avec fond bg-muted + bordure
|
||||
- Fix highlight row : selector .intervention-v2[data-iv-idx]
|
||||
- Scroll-into-view automatique au hover segment timeline
|
||||
|
||||
## v2026.5.28 — Ajustements visuels absences
|
||||
- Retrait pastille ronde (.tech-name-dot supprimée) — barre gauche + badge suffisent
|
||||
## v2026.5.28 : Ajustements visuels absences
|
||||
- Retrait pastille ronde (.tech-name-dot supprimée) : barre gauche + badge suffisent
|
||||
- "Maladie" → "Maladie/Accident"
|
||||
- Contraste textes secondaires +30%
|
||||
- Popups épinglés width fixe 520px (ne rétrécit plus au resize fenêtre)
|
||||
- _clampPopupInSafeArea ne rétrécit plus si popup > zone dispo
|
||||
|
||||
## v2026.5.27 — Classification absences (Maladie/Congé/Pompier)
|
||||
## v2026.5.27 : Classification absences (Maladie/Congé/Pompier)
|
||||
- Topbar une ligne : "Jeudi 23.04.26 • 21:55" (gros point •, même taille 22px)
|
||||
- Fermeture auto popups non-épinglés au survol autre popup/carte
|
||||
- Texte +20% topbar/stats/boutons
|
||||
@@ -687,20 +684,20 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- Classification absences (ABSENCE_LABELS) + absenceCategory : "maladie"|"conge"|"pompier"|null
|
||||
- Couleurs : Maladie #4338ca indigo foncé, Congé #06b6d4 cyan, Pompier #b03030 rouge
|
||||
- Badge + barre gauche + dégradé fond pour catégorie
|
||||
- Libellé "Absent du DD.MM au DD.MM — Maladie/Accident"
|
||||
- Libellé "Absent du DD.MM au DD.MM" suivi de la catégorie (Maladie/Accident)
|
||||
- Suffixe `s` adaptatif (Congé/Congés)
|
||||
|
||||
## v2026.5.26 — Badge user inconnu cliquable + retry
|
||||
## v2026.5.26 : Badge user inconnu cliquable + retry
|
||||
- En cas d'échec fetch user, afficher rond gris "?" cliquable
|
||||
- Bouton ⚙ Paramètres accessible même quand user inconnu
|
||||
- Retry automatique 60s (max 10 essais = 10 min)
|
||||
- Reset compteur au succès
|
||||
|
||||
## v2026.5.25 — Bouton Paramètres dans popup user-badge
|
||||
## v2026.5.25 : Bouton Paramètres dans popup user-badge
|
||||
- Remplace les 5 clics sur le titre pour ouvrir admin
|
||||
- Bouton ⚙ Paramètres explicite dans le popup user-badge
|
||||
|
||||
## v2026.5.16-v2026.5.24 — Évolutions diverses (à compléter)
|
||||
## v2026.5.16 à v2026.5.24 : Évolutions diverses
|
||||
- v2026.5.17 : popup user-badge avec ligne session (MM:SS), couleur selon seuil
|
||||
- v2026.5.18 : dock pastilles popups épinglés avec couleur catégorie
|
||||
- v2026.5.19 : drag popup épinglé
|
||||
@@ -725,12 +722,12 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
> - Présence de `openPersistentTimelinePopup` → version >= v4.2.3
|
||||
> - Commentaires `// vX.Y.Z` au-dessus des fonctions = version d'introduction
|
||||
|
||||
### v5.0.0 — Refonte topbar (horloge, menu admin)
|
||||
### v5.0.0 : Refonte topbar (horloge, menu admin)
|
||||
- initAppClock : horloge HH:MM au milieu topbar
|
||||
- initAdminMenu : menu admin caché (5 clics sur titre)
|
||||
- initSessionTimer : compteur de session EV (tick 1s)
|
||||
|
||||
### v4.x — Fonctions tooltip avancées
|
||||
### v4.x : Fonctions tooltip avancées
|
||||
- v4.1.12 : moveTooltip devenu no-op (popup statique)
|
||||
- v4.1.15 : pendant épinglage, ne pas remplacer contenu sur hover autre iv
|
||||
- v4.2.3 : grande popup timeline persistante (clic), suit-souris (hover)
|
||||
@@ -741,7 +738,7 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
- v4.3.0 : tooltip live libéré après épinglage (réutilisable autres survols)
|
||||
- v4.3.3 : _softUnpinPopup (désépinglage mou)
|
||||
|
||||
### v3.x et antérieures — Versions de base
|
||||
### v3.x et antérieures : Versions de base
|
||||
- Code historique consultable via les tags git correspondants.
|
||||
|
||||
---
|
||||
@@ -762,6 +759,6 @@ Une intervention terminée par le tech mais dont la fiche était passée en stat
|
||||
|
||||
## Auteur
|
||||
|
||||
**Quentin** (FRS)
|
||||
Technicien DGNSI — Canton de Vaud
|
||||
**Quentin Rouiller**
|
||||
Technicien DGNSI, Canton de Vaud
|
||||
Contact : voir [page wiki Contact](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Contact)
|
||||
|
||||
Reference in New Issue
Block a user