# Planification — Extension EasyVista Canton de Vaud Extension Chrome / Firefox pour visualiser de manière claire et rapide le planning des techniciens DGNSI (Canton de Vaud) dans EasyVista. ## Aperçu rapide - **Auteur** : Quentin Rouiller (QRO) - **Cible** : techniciens DGNSI (Canton de Vaud), EasyVista (`itsma.etat-de-vaud.ch` / `itsma.vd.ch`) - **Démarrage projet** : jeudi 16 avril 2026 - **Version actuelle** : `v2026.5.42` - **Contact** : voir [page wiki Contact](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Contact) - **Manifest** : V3 (Chrome/Edge/Firefox) - **Format** : `.zip` (Chromium) + `.xpi` signé (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 - Équipe configurable depuis le panel admin (détection automatique via EasyVista) - 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) - Depuis v2026.5.40 : barre couleur catégorie + référence + ville sur chaque segment timeline - 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` (suffixe `s` adaptatif) - **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 : bouton ⚙ Paramètres dans popup user-badge (depuis v2026.5.25) - Configuration persistée dans `chrome.storage.local` (`admin_config`) - Sélecteur de groupe EasyVista (SI-CSS, SI-EXT, …) en tête de l'onglet Équipe (depuis v2026.5.40) — détection automatique via le `` de la page Planning EV. Robuste aux ajouts/renommages côté EV. - **Onglet Équipe** : sélecteur de groupe EasyVista (SI-CSS, SI-EXT, …) en tête de section, détecté automatiquement à l'ouverture du panel via le `` → liste des groupes EV | | `detectTeamFromEV` | Liste les membres d'un groupe (paramétrable depuis v2026.5.40) | | `evFetch` | Wrapper fetch avec headers EV (Referer, X-Requested-With) | ### Constantes / valeurs hardcodées (toutes versions) - Group ID EV par défaut : `191` (SI-CSS) — surchargeable via le sélecteur depuis v2026.5.40 - Pillonel Olivier (ID 40944) : absent tous les vendredis (récurrent) - GUIDs forms EV : - Demande : `S={C99ECD05-3D48-4C62-ABF0-66292053AED6}` - Incident : `I={07ED9C68-6172-48EA-8A58-90912B0A283E}` - SSO : Canton ForgeRock OpenAM - Storage keys : `admin_config`, `view_mode` - Domaines : `itsma.etat-de-vaud.ch` (interne), `itsma.vd.ch` (externe) ## Installation ### Firefox Télécharger le `.xpi` depuis `Builds/` ou le serveur de mises à jour interne, puis drag-and-drop dans `about:addons`. ### Chrome / Edge Mode développeur : décompresser `Builds/planification-vYYYY.M.PATCH-chromium.zip` (ou utiliser directement `dist/chromium/`) et charger en tant qu'extension non empaquetée. ## Développement ```bash git clone https://gitea.netaplaid.ch/FroSteel/Planification.git cd Planification # Modifier les sources dans src/ # Bumper la version dans src/manifest.json + ajouter une entrée dans Autres/CHANGELOG.md # Builder : ./Autres/build.sh # → produit dist/chromium/, dist/firefox/, dist/*.zip, dist/*.xpi # Copier dans Builds/ pour distribution : cp -r dist/chromium Builds/Chromium cp -r dist/firefox Builds/Firefox cp dist/*.zip dist/*.xpi Builds/ git add -A git commit -m "vYYYY.M.PATCH — description" git tag vYYYY.M.PATCH git push origin main git push --tags ``` ## Licence [MIT License](LICENSE) — Copyright (c) 2026 Quentin Rouiller ## Auteur **Quentin Rouiller** (QRO) Technicien DGNSI — Canton de Vaud Contact : voir [page wiki Contact](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Contact)