• v2026.5.46 Stable

    FroSteel released this 2026-07-09 16:21:59 +02:00 | 2 commits to main since this release

    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.

    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 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.
    • 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.
    • Les anciens caches (planning_cache_*) sont purgés au démarrage.

    Vue horizontale : nouvelle disposition « échelle de temps exacte »

    • Nouvelle option dans Paramètres → Apparence (exclusive avec « Afficher les pauses » : cocher l'une décoche l'autre). La vue par défaut reste inchangée.
    • 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.
    • 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'Université 5 » → « Université 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.
    • Alignement règle/cartes mesuré au pixel réel (indépendant du zoom et de la taille de texte).

    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.
    • 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.
    • Édition d'une réservation (heures ou infos seules), suppression, tooltip détaillé avec ouverture/copie du n° lié.

    Pompier

    • Assignations « pompier du mois » : définition par période (bouton Ajouter → Pompier), affichage dans la barre de stats, liste des pompiers actuels/à venir, édition/déplacement de période.
    • La bandelette « En pompier du … au … » reste fixée en haut de la carte ; un pompier absent toute la journée est exclu du compteur.

    Coordinateur (en développement)

    • Badge « Mes actions » dans la barre de stats + onglet dédié listant les interventions où le coordinateur a une action ; outil d'impersonation (réservé à l'auteur) pour tester.

    Douchette

    • 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

    • Opérateurs : espace = tous les mots, % joker, "expression exacte", -mot exclusion, tech:/lieu:/ref:/cat:/contact: ciblage de champ.
    • Pagination 15 par 15 au défilement ; passé replié par défaut ; badge « Jour affiché » ; aide sur la syntaxe.
    • Mise en avant stabilisée : « Jour ↗ » navigue et surligne la carte pendant 15 s, survit aux re-rendus, un seul défilement animé.
    • La croix d'effacement native du navigateur (en doublon avec celle de l'extension) est masquée.

    Interventions & affichage

    • Multi-jours : badge pilule (« 📅 ⇢ 16/06 » / « ⇠ 12/06 »), heures d'affichage par jour, période complète au survol, déplacement bloqué (à modifier dans EasyVista).
    • Conflit au déplacement : le modal de confirmation signale toute occupation du technicien cible (détail en rouge) et propose le créneau libre le plus proche (même durée) en un bouton.
    • Vérification d'adresse : la localisation officielle de la fiche devient l'adresse affichée ; si elle diverge de celle écrite dans l'action, le lieu passe en rouge avec explication au survol (comparaison tolérante ; exception Roll Out).
    • Contacts : deux numéros de téléphone dans une action ne sont plus collés à l'affichage (désormais « 021 557 11 62 / 079 172 68 85 ») ; labels de fiche collés au contact séparés proprement.
    • Ouverture de fiche : les interventions faites/clôturées se rouvrent à nouveau dans EasyVista (le lien interne est régénéré via la référence).
    • Sections Matin / Après-midi / « Journée » harmonisées sur les deux vues ; éléments chevauchant midi non découpés ; catégorie « Autre » en violet foncé (fini le gris confondu avec les cartes faites).
    • Interventions « faites » plus ré-analysées à chaque actualisation (économie réseau).

    Dossier partagé : script PowerShell publié

    • Le script hôte (native messaging) est publié avec cette version et téléchargeable depuis Paramètres → Dossier partagé.

    Qualité

    • Nettoyage complet : fonctions mortes retirées, aucun doublon de code, tous les journaux passés au logger maison (console propre en production), plus aucun emoji dans les logs, marqueurs de révision internes retirés.
    Downloads