diff --git a/CHANGELOG.md b/CHANGELOG.md index dcacbaa..cf3d7dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,65 @@ --- +## v2026.5.40 — Sélection groupe EV + édition domaines + tri équipe + vue horizontale enrichie +**Branche** : main + +### Onglet Équipe (panel admin) +- Nouveau **sélecteur de groupe EasyVista** (SI-CSS, SI-EXT, …) en + tête de section, détecté automatiquement à l'ouverture du panel + via le ``. +- `detectTeamFromEV()` accepte désormais un `groupId` en argument → + permet de basculer entre SI-CSS / SI-EXT depuis l'admin. +- ⚠ Le fetch du planning continue d'utiliser `group_id=191` codé en + dur — sera retiré quand on validera que `cfg.groupId` est bien + alimenté par le sélecteur en terrain réel. + ## v2026.5.39 — Séparation Matin / Après-midi + Apparence (thème, zoom, cache) **Branche** : current diff --git a/README.md b/README.md index 2cde79e..e150ec0 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Extension Chrome / Firefox pour visualiser de manière claire et rapide le plann - **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.37` +- **Version actuelle** : `v2026.5.40` - **Manifest** : V3 (Chrome/Edge/Firefox) - **Format** : `.zip` (Chromium) + `.xpi` signé (Firefox) @@ -83,7 +83,27 @@ Le numéro de **majeure** n'est **pas** un mois et **pas** un chiffre lié au ca ## Versions notables -### `v2026.5.37` (latest, 25 avril 2026) — Refonte vue horizontale +### `v2026.5.40` (latest, 27 avril 2026) — 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 via le ``. C'est la source autoritative : ce sont les + * `group_id` exacts qu'EasyVista lui-même utilise pour le widget de + * changement de groupe sur la page planning. Robuste aux ajouts/renommages : + * si le DGNSI ajoute un 3e groupe ou renomme SI-CSS, ça apparaît tout seul. + * + * Retourne { groups: [{id, name}, ...] }. Liste vide si le fetch échoue ou + * si EV renvoie une page de login / redirection JS. + * + * @author Quentin Rouiller + */ +async function detectGroupsFromEV(origin, phpsessid) { + const url = `${origin}/index.php?eventName=HelpDesk_PlanningItem&PHPSESSID=${encodeURIComponent(phpsessid)}`; + console.log("[bg] detectGroupsFromEV → fetch page planning"); + console.log("[bg] URL =", url); + + const r = await evFetch(url, origin); + if (!r.ok) { + const err = new Error("HTTP " + r.status); + err.kind = classifyHttpStatus(r.status); + err.status = r.status; + throw err; + } + const html = await r.text(); + console.log("[bg] page planning taille =", html.length); + + if (looksLikeLoginPage(html)) { + const err = new Error("session_expired"); + err.kind = "session_expired"; + throw err; + } + + // Parser le et ses