- Topbar une ligne, fermeture auto popups, contrastes améliorés - ABSENCE_LABELS, couleurs Maladie/Congé/Pompier, badge + barre gauche [code interpolé]
Planification — Extension EasyVista Canton de Vaud
Extension Chrome / Firefox pour visualiser de manière claire et rapide le planning des techniciens IT du Canton de Vaud dans EasyVista.
Aperçu rapide
- Auteur : Quentin Rouiller (QRO)
- Cible : techniciens IT Canton de Vaud, EasyVista (
itsma.etat-de-vaud.ch/itsma.vd.ch) - Démarrage projet : jeudi 16 avril 2026
- Version actuelle :
v2026.5.37 - Manifest : V3 (Chrome/Edge/Firefox)
- Format :
.zip(Chromium) +.xpisigné (Firefox)
Fonctionnalités principales
Vue planning
- Affichage des interventions et réservations groupées par technicien
- Horaires, contact, lieu, catégorie, statut visibles d'un coup d'œil
- 8 techniciens hardcodés (équipe IT canton)
- Cache local pour réduire les requêtes serveur
Modes d'affichage
- Vue classique (depuis v1.0.0) : cards en grille, mode compact écran 24" (depuis v2026.5.30)
- Vue horizontale (depuis v2026.5.32) : timeline par tech, sidebar verticale (depuis v2026.5.36)
- Toggle Vue classique ↔ Vue horizontale via bouton ⊞ dans popup user-badge
- Persistance localStorage (
view_mode)
Tooltips et popups
- Tooltips au survol (hover) sur chaque intervention
- Popups épinglables (📌) pour garder ouvert (depuis v4.1.3)
- Popups timeline persistantes au clic (depuis v4.2.3)
- Drag-and-drop des popups épinglés (depuis v2026.5.19)
- Safe area : popups jamais cachés sous topbar/dock (depuis v2026.5.20)
- Position auto adaptative (4 candidats : droite/gauche/dessous/dessus)
Classification des absences (depuis v2026.5.27)
- Maladie/Accident : indigo
#4338ca - Congé / Congés : cyan
#06b6d4(suffixesadaptatif) - Pompier : rouge
#b03030 - Badge + barre gauche colorée + dégradé fond
- Absence récurrente Pillonel vendredi : cyan (depuis v2026.5.30)
User et session
- Badge user avec photo/initiales en topbar
- Badge cliquable (depuis v2026.5.26) : popup avec ⚙ Paramètres + ⊞ Vue + compteur session MM:SS
- Retry automatique en cas d'échec fetch user (60s, max 10 essais)
- Compteur de session EasyVista (tick 1s, depuis v5.0.0)
- Reconnexion automatique
Admin et configuration
- Mode admin caché : bouton ⚙ Paramètres dans popup user-badge (depuis v2026.5.25, remplace les 5 clics secrets sur le titre)
- Configuration persistée dans
localStorage(admin_config) - Catégories interventions personnalisables (livraison/recup/remplacement/incident/rollout/reservation/autre)
Versionning — historique et conventions
L'extension a connu 3 systèmes de versionning successifs :
| Période | Format | Exemple |
|---|---|---|
| 16-17 avril 2026 | Versions de base | 1.0.0, 2.0.0, 3.0.0 |
| 18-20 avril 2026 | SemVer classique | 4.1.3, 4.2.8, 5.0.12 |
| 21 avril 2026 → maintenant | Année + mois + patch | 2026.5.16 → 2026.5.37 |
Pourquoi le passage à YYYY.M.PATCH ?
À partir de la v2026.5.16 (21 avril 2026), l'extension est passée au versionning par année :
- Plus lisible pour les utilisateurs (l'année indique immédiatement la fraîcheur)
- Plus de débat sur ce qui constitue un "majeur" vs "mineur"
- Bump du
PATCHà chaque livraison
⚠️ Important : v2026.5.16 succède chronologiquement à v5.0.12, malgré le numéro qui semble plus petit. Le préfixe 2026 indique l'année.
Versions notables
v2026.5.37 (latest, 25 avril 2026) — Refonte vue horizontale
- Topbar supprimée en vue horizontale, tout passe en sidebar
- User-badge + titre + bouton "Aujourd'hui" + date/heure + sélecteur + flèches + stats dans sidebar
- Banderole pompier masquée (badge + barre rouge gauche conservés)
v2026.5.36 — Sidebar verticale
- Wrapper flex-row
#horizontal-wrapper[sidebar 200px] + [main] - Déplacement physique des éléments via
ELEMENTS_TO_RELOCATE - Restauration propre en vue classique
v2026.5.32 — Vue horizontale togglable
- Bouton ⊞ "Vue" dans popup user-badge
- Chaque tech = 1 ligne horizontale compacte
- localStorage
view_mode
v2026.5.27 — Classification absences
- ABSENCE_LABELS :
^(cong[ée]s|maladie|pompier)$ - Couleurs catégories
- Topbar une ligne : "Jeudi 23.04.26 • 21:55"
v4.2.3 — Grande popup timeline persistante
- Clic segment timeline = popup persistante
- Hover = popup qui suit la souris
v4.1.3 — Tooltips épinglables
- Introduction de
pinTooltip
v1.0.0 (16 avril 2026) — Initiale
- Premier viewer EasyVista pour le canton
Voir CHANGELOG.md pour l'historique complet (40 versions taggées).
Architecture technique
manifest.json # Manifest V3 (Chrome) + gecko_settings (Firefox)
background.js # Worker fond : fetch planning XML, gestion session, fetch fiches
viewer.html # Interface principale
viewer.js # Logique (~9000 lignes) — voir détail ci-dessous
viewer.css # Styles + thèmes clair/sombre
icons/ # icon16, icon48, icon128
viewer.js — fonctions clés
| Fonction | Introduite | Rôle |
|---|---|---|
loadForDate |
v1.0.0 | Fetch + parse planning pour une date donnée |
buildTooltipHTML |
v1.0.0 | Construction HTML du tooltip d'intervention |
pinTooltip |
v4.1.3 | Épingler un tooltip (le rendre permanent) |
bindTimelinePopover |
v4.2.3 | Lier popover timeline aux segments |
showTimelinePopover |
v4.2.3 | Afficher popover persistante |
openPersistentTimelinePopup |
v4.2.3 | Grande popup détaillée |
setTooltipViewportPosition |
v4.2.4 | Détection auto fixed/abs |
_softUnpinPopup |
v4.3.3 | Désépinglage mou (popup reste visible) |
initAppClock |
v5.0.0 | Horloge HH:MM topbar |
initSessionTimer |
v5.0.0 | Compteur session EV (tick 1s) |
initAdminMenu |
v5.0.0 | Menu admin (5 clics titre) |
_applyViewMode |
v2026.5.32 | Toggle vue classique/horizontale |
_maybeRetryFetchUser |
v2026.5.34 | Relance opportuniste fetch user |
positionTooltipAnchored |
v2026.5.34 | Positionnement unifié (4 candidats) |
Constantes persistantes (toutes versions)
- 8 techs hardcodés :
76272,83725,66635,92235,90070,40944,72485,86874 - Pillonel Olivier (ID 40944) : absent tous les vendredis (hardcodé)
- Group ID EasyVista :
191 - GUIDs forms EV :
- Demande :
S={C99ECD05-3D48-4C62-ABF0-66292053AED6} - Incident :
I={07ED9C68-6172-48EA-8A58-90912B0A283E}
- Demande :
- SSO : Canton ForgeRock OpenAM
- Storage keys :
admin_config,view_mode(depuis v2026.5.32) - Domaines :
itsma.etat-de-vaud.ch(interne),itsma.vd.ch(externe SSO)
Installation
Firefox
Télécharger le .xpi signé depuis le serveur de mises à jour interne, ou drag-and-drop dans about:addons.
Chrome / Edge
Mode développeur : décompresser le ZIP et charger en tant qu'extension non empaquetée.
Développement
git clone https://gitea.netaplaid.ch/FroSteel/Planification.git
cd Planification
# Pour packager une nouvelle version :
# 1. modifier le code
# 2. bump version dans manifest.json
# 3. zip + xpi
git add -A
git commit -m "Version YYYY.M.PATCH — description"
git tag vYYYY.M.PATCH
git push origin main
git push --tags
Licence
MIT License — Copyright (c) 2026 Quentin Rouiller
Auteur
Quentin Rouiller (QRO) Canton de Vaud — Service IT