• v2026.5.44 Stable

    FroSteel released this 2026-05-01 18:08:18 +02:00 | 3 commits to main since this release

    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
    sur toute la page), nouvelle expérience d'onboarding quand aucun technicien
    n'est sélectionné, refonte du système de verdicts ghost (✓✓ clos / ✓ Fait /
    ✓ Suspendu), refresh strictement séquentiel avec arrêt instantané, et
    plusieurs corrections.

    Refresh / cache / verdicts ghost

    • Rafraîchissement séquentiel (1 fiche à la fois) au lieu de 5 workers
      parallèles → arrêt instantané via le bouton « ✕ Arrêter » (AbortController),
      plus de races DOM, ordre d'affichage cohérent (pompier d'abord, puis alpha,
      puis matin → après-midi).
    • Re-fetch du checksum frais via basicAutoComplete + redirectHeader
      (plus de fiche périmée entre sessions).
    • Cache merge robuste (fallback cachedByRef quand actionId change) et
      cache écrit toutes les 5 fiches pendant le refresh (incrémental).
    • Système de verdicts ghost unifié : ✓✓ vert (clos / résolu officiel),
      ✓ gris « Fait » (terminated-pending), ✓ jaune « Suspendu »
      (terminated-suspended), retrait silencieux pour cancelled / cancelled-
      reservation / cancelled-absence.
    • Statuts EV (clos / résolu / annulé / suspendu) éditables depuis Paramètres
      → EasyVista avec matching insensible à la casse, accents et conjugaisons.
    • Mise à jour live du tooltip et du popup épinglé après un verdict (plus
      besoin de fermer/réouvrir).
    • Clic immédiat sur la carte dès que le verdict tombe (avant la fin du
      refresh complet).
    • Boutons « Actualiser » (rapide, ne re-télécharge pas les fiches déjà
      connues) vs « Tout recharger » (force tout sauf les ✓✓ déjà clos).
    • Mode diagnostic optionnel (Paramètres → Diagnostics) : aucune
      intervention disparue n'est retirée silencieusement, tout est tracé sous
      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

    • 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
      rafraîchissement.
    • Bouton « Aujourd'hui » affiché en toutes lettres (au lieu de « Auj. »).
    • Horloge contextuelle (date du jour + heure) réduite et discrète, à côté
      du bouton Aujourd'hui dans un cadre encadré.
    • Date du planning agrandie et neutre (couleur stable, plus de bascule
      selon la date sélectionnée).

    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,
      Rouge, Bleu pastel, Vert pastel) + picker custom + champ hex #rrggbb
      • bouton « Réinitialiser ».
    • La couleur s'applique uniquement à la topbar (et à la sidebar quand on
      est en vue horizontale).
    • Le texte de la topbar (titre, horloge, date, capture-info, badges,
      boutons) s'adapte automatiquement (clair/foncé) selon la luminance
      de la couleur choisie pour rester toujours lisible.
    • Police de l'application : 28 choix organisés en familles
      (sans-serif : Arial, Helvetica, Verdana, Tahoma, Trebuchet, Calibri,
      Segoe UI, Gill Sans, Futura, Optima ; serif : Times New Roman, Georgia,
      Cambria, Garamond, Palatino, Bookman ; monospace : Courier New, Consolas,
      Lucida Console, JetBrains Mono ; display : Comic Sans MS, Impact,
      Brush Script, Copperplate ; condensée : Arial Narrow). La police choisie
      s'applique à toute la page (topbar, cards, popups, tooltips, panel
      admin) et chaque option du select s'affiche dans sa propre police pour
      prévisualiser le rendu, avec un aperçu live à droite.
    • Export / import du cache et de admin_config depuis Paramètres →
      Diagnostics.

    Vue horizontale

    • Bloc « Aujourd'hui + horloge » empilé verticalement dans la sidebar, dans
      le même cadre encadré que la vue classique.
    • Date sélectionnée mise en avant (taille augmentée, en gras), date du
      jour et heure réduites à la même petite taille pour rester discrètes.
    • Barre verticale verte ajoutée à droite des mini-cards quand le
      ticket est officiellement clôturé / résolu (✓✓), avec léger décalage du
      ✓✓ pour ne pas chevaucher la barre.
    • Quand l'utilisateur a choisi une couleur de topbar, la sidebar prend
      aussi la couleur : titre, horloge, capture-info, stats, today-block,
      date sélectionnée, boutons, theme-toggle et séparateurs adoptent une
      teinte translucide cohérente (via color-mix) qui contraste correctement
      sur n'importe quel fond.

    Statistiques globales

    • Nouveau compteur « X faits / Y clos » entre (matin · après-midi)
      et tech. dispo. Inclut tous les tickets terminés (clos/résolus officiels
      • verdicts ghost « Fait » / « Suspendu »).
    • En vue classique, séparateur // après clos (au lieu de ·).
    • En vue horizontale (sidebar), une barre horizontale 1px sépare le
      bloc interventions/faits/clos du bloc tech. dispo + pompiers / absents.

    Onboarding équipe (1ʳᵉ install ou config vide)

    • L'erreur générique « Aucun technicien sélectionné » est remplacée par une
      carte d'onboarding centrée comprenant :
      • icône (👥) cerclée en couleur accent du thème ;
      • titre « Aucune équipe configurée » ;
      • description claire ;
      • bouton primary « Ouvrir paramètres » qui ouvre directement le panel
        admin sur la section Équipe.
    • Carte centrée verticalement et horizontalement dans la zone disponible,
      identique en vue classique et horizontale.

    Bugfix

    • Issue #1 (Pompier + Absence) : si un tech est à la fois pompier ET
      absent, les deux badges s'affichent désormais avec un séparateur / au
      lieu de masquer l'absence derrière le badge pompier.
    • Absences récurrentes : quand on changeait de groupe puis revenait au
      groupe initial, les jours d'absence cochés pour les techniciens
      disparaissaient visuellement (la donnée elle-même restait en storage).
      Correction : restauration depuis cfg.recurringAbsences à chaque
      re-render.
    • Barre de progression / bannière session expirée : suivent désormais
      la hauteur dynamique de la topbar (variable CSS --topbar-height mesurée
      par un ResizeObserver). Plus de chevauchement quand on scrolle.
    • STATUS_FR regex : limite augmentée de 30 à 200 caractères (battait
      sur « Suspendu : Attente info bénéficiaire/demandeur »).
    • Description action : décodage " → ", <br> → \n, HTML
      strippé. Préfixe « login: » retiré du commentaire technicien dans le
      tooltip / popup.
    • Tooltip référence : flèche « ↗ » retirée du lien cliquable.
    Downloads