diff --git a/README.md b/README.md index 66b279c..b3cb941 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,39 @@ # 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. +Extension Chrome / Firefox pour visualiser de manière claire et rapide le planning EasyVista de l'équipe technicienne DGNSI (Canton de Vaud). + +> 📖 **Documentation utilisateur complète** : [wiki](https://gitea.netaplaid.ch/FroSteel/Planification/wiki) ([Home](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Home) · [Utilisation](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Utilisation) · [Versions](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Versions) · [Architecture](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Architecture) · [Dépannage](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/D%C3%A9pannage) · [Contact](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Contact)) ## Aperçu rapide -- **Auteur** : Quentin Rouiller (QRO) -- **Cible** : techniciens DGNSI (Canton de Vaud), EasyVista (`itsma.etat-de-vaud.ch` / `itsma.vd.ch`) +- **Auteur** : Quentin Rouiller (QRO), Technicien DGNSI — Canton de Vaud +- **Public cible** : coordinateurs et techniciens DGNSI utilisant EasyVista (`itsma.etat-de-vaud.ch` / `itsma.vd.ch`) - **Démarrage projet** : jeudi 16 avril 2026 -- **Version actuelle** : `v2026.5.43` -- **Contact** : voir [page wiki Contact](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Contact) -- **Manifest** : V3 (Chrome/Edge/Firefox) -- **Format** : `.zip` (Chromium) + `.xpi` signé (Firefox) +- **Version actuelle** : [`v2026.5.43`](https://gitea.netaplaid.ch/FroSteel/Planification/releases/tag/v2026.5.43) (latest) +- **Contact** : voir [page wiki Contact](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Contact) ou [ouvrir une issue](https://gitea.netaplaid.ch/FroSteel/Planification/issues/new) +- **Manifest** : V3 (Chrome/Edge/Firefox 140+) +- **Format** : `.zip` (Chromium) + `.xpi` signé Mozilla (Firefox) +- **Distribution** : auto-update natif Firefox via `firefox-updates.json` + +## Installation rapide + +### Firefox 🦊 (recommandé — auto-update) + +1. Télécharger le `.xpi` signé depuis la **[release courante](https://gitea.netaplaid.ch/FroSteel/Planification/releases/latest)**. +2. Drag-and-drop dans `about:addons` de Firefox. +3. Cliquer "Ajouter". + +À partir de là, l'extension se met à jour **automatiquement** à chaque nouvelle version (vérification toutes les ~24 h via `firefox-updates.json`). + +### Chrome / Edge / Brave 🌐 (manuel) + +1. Télécharger le `.zip` depuis la **[release courante](https://gitea.netaplaid.ch/FroSteel/Planification/releases/latest)**. +2. Décompresser dans un dossier permanent. +3. `chrome://extensions/` (ou `edge://extensions/`) → activer **Mode développeur** → "Charger l'extension non empaquetée" → sélectionner le dossier décompressé. + +Les mises à jour sont **manuelles** : à chaque nouvelle release, retélécharger le `.zip`, écraser le dossier, puis cliquer ⟳ (Recharger) sur la carte de l'extension. + +➡ Pour le détail complet (stockage, désinstallation, comparatif), voir [wiki Utilisation → Installation et navigateurs](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Utilisation#installation-et-navigateurs). ## Fonctionnalités principales @@ -115,7 +138,6 @@ Le numéro de **majeure** n'est **pas** un mois et **pas** un chiffre lié au ca ### `v2026.5.40` — Sélection groupe EV + édition domaines + tri équipe + vue horizontale enrichie - **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 `` de la page Planning EV. Robuste aux ajouts/renommages côté EV. - ID groupe affiché en italique (ex: `ID groupe : 191`). - Quand on change de groupe, la liste d'équipe se rafraîchit automatiquement avec les membres du nouveau groupe. - Plus de bouton "Détecter" : tout est auto à l'ouverture. @@ -128,110 +150,30 @@ Le numéro de **majeure** n'est **pas** un mois et **pas** un chiffre lié au ca ### `v2026.5.39` — Séparation Matin / Après-midi + Apparence - Pills "MATIN" / "APRÈS-MIDI" entre les interventions de chaque tech - Section **Apparence** dans les paramètres : thème, taille du texte, durée du cache, heures de la journée -- Section **À propos** (version, auteur, licence) -### `v2026.5.38` — Attribution auteur + nettoyage + observabilité -- Module `LOG` unifié + handlers globaux d'erreur -- Toggle "Logs verbeux (debug)" dans le panel admin -- En-têtes copyright dans tous les fichiers source - -### `v2026.5.37` — Refonte vue horizontale (sidebar complète) -- Topbar entièrement déplacée en sidebar verticale - -### `v2026.5.36` — Sidebar verticale en vue horizontale -- Wrapper flex-row `#horizontal-wrapper` [sidebar 200px] + [main] - -### `v2026.5.32` — Vue horizontale togglable -- Bouton ⊞ "Vue" dans popup user-badge - -### `v2026.5.27` — Classification absences -- Maladie indigo, Congé cyan, Pompier rouge - -### `v4.2.3` — Grande popup timeline persistante -- Clic segment timeline = popup persistante - -### `v4.1.3` — Tooltips épinglables -- Introduction de `pinTooltip` - -### `v1.0.0` (16 avril 2026) — Initiale -- Premier viewer EasyVista pour le canton - -Voir [CHANGELOG.md](CHANGELOG.md) pour l'historique complet (40+ versions taggées). +➡ Pour l'historique complet (40+ versions depuis le 16 avril 2026), voir le **[CHANGELOG.md](CHANGELOG.md)** ou la **[page wiki Versions](https://gitea.netaplaid.ch/FroSteel/Planification/wiki/Versions)**. ## Architecture technique ``` -Planning/ -├── src/ # Sources de l'extension (chargées par le navigateur) -│ ├── manifest.json # Manifest V3 (Chrome) + gecko_settings (Firefox) -│ ├── background.js # Service worker : fetch planning XML, gestion session, fetch fiches -│ ├── viewer.html # Interface principale -│ ├── viewer.js # Logique (~9 500 lignes) -│ ├── viewer.css # Styles + thèmes clair/sombre -│ └── icons/ # icon16, icon48, icon128 -├── Autres/ # Méta : build script + docs (depuis v2026.5.40) -│ ├── build.sh # Génère dist/chromium/, dist/firefox/, .zip, .xpi -│ ├── CHANGELOG.md -│ ├── LICENSE -│ └── README.md -├── Builds/ # Artefacts distribués aux techniciens -│ ├── Chromium/ -│ ├── Firefox/ -│ ├── planification-vYYYY.M.PATCH-chromium.zip -│ └── planification-vYYYY.M.PATCH-firefox.xpi -└── dist/ # Sortie de build (gitignoré) +Planification/ # Layout du repo Gitea (public) +├── src/ # Sources de l'extension (chargées par le navigateur) +│ ├── manifest.json # Manifest V3 (Chrome) + browser_specific_settings (Firefox) +│ ├── background.js # Service worker (~1 600 lignes) +│ ├── viewer.html # Interface principale +│ ├── viewer.js # Logique UI (~10 700 lignes) +│ ├── viewer.css # Styles + thèmes clair/sombre (~4 800 lignes) +│ └── icons/ # icon16, icon48, icon128 +├── build.sh # Génère dist/chromium/, dist/firefox/, .zip, .xpi, met à jour firefox-updates.json +├── firefox-updates.json # Manifest auto-update Firefox (servi via update_url) +├── README.md +├── CHANGELOG.md +├── LICENSE # MIT +├── CLAUDE.md # Workflow pour Claude Code +└── .gitignore ``` -### `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) | -| `_applyViewMode` | v2026.5.32 | Toggle vue classique/horizontale | -| `_maybeRetryFetchUser` | v2026.5.34 | Relance opportuniste fetch user | -| `positionTooltipAnchored` | v2026.5.34 | Positionnement unifié (4 candidats) | -| `renderAdminSectionTeam` | v5.0.0 | Onglet admin Équipe (sélecteur groupe EV depuis v2026.5.40) | -| `renderAdminSectionEV` | v5.0.0 | Onglet admin EasyVista (édition domaines depuis v2026.5.40) | - -### `background.js` — fonctions clés - -| Fonction | Rôle | -|---|---| -| `findEasyVistaSession` | Trouve l'onglet EV ouvert + extrait PHPSESSID | -| `fetchPlanningXml` | Fetch XML calendar_block du planning | -| `fetchFicheHtml` | Fetch HTML d'une fiche EV (avec retry SSO) | -| `fetchCurrentUser` | Identifie l'user EV connecté | -| `detectGroupsFromEV` (v2026.5.40) | Parse le `