diff --git a/Architecture.md b/Architecture.md index 52bea28..32cb77d 100644 --- a/Architecture.md +++ b/Architecture.md @@ -4,15 +4,18 @@ ``` Planification/ -├── manifest.json # Manifest V3 (Chrome) + gecko_settings (Firefox) -├── background.js # Service worker (~1 350 lignes) -├── viewer.html # Interface principale -├── viewer.js # Logique (~9 300 lignes) -├── viewer.css # Styles + thèmes clair/sombre -├── icons/ # icon16, icon48, icon128 -├── README.md +├── .gitignore +├── build.sh # Génère dist/chromium/, dist/firefox/, .zip, .xpi +├── CHANGELOG.md ├── LICENSE # MIT -└── CHANGELOG.md +├── README.md +└── src/ # Sources de l'extension (chargées par le navigateur) + ├── manifest.json # Manifest V3 (Chrome) + gecko_settings (Firefox) + ├── background.js # Service worker (~1 500 lignes) + ├── viewer.html # Interface principale + ├── viewer.js # Logique (~9 500 lignes) + ├── viewer.css # Styles + thèmes clair/sombre + └── icons/ # icon16, icon48, icon128 ``` ## Composants principaux @@ -20,20 +23,24 @@ Planification/ ### `background.js` — Service worker (Manifest V3) Worker de fond responsable de : - Récupération de la session EasyVista (PHPSESSID) -- Fetch du XML `calendar_block` (planning du jour pour les 8 techs) +- Fetch du XML `calendar_block` (planning du jour pour les techs configurés) - Fetch des fiches détaillées (HTML) - Fetch du timeline JSON (texte action complet) - Détection contexte réseau (interne / externe via SSO) +- Détection automatique des **groupes EasyVista** disponibles (depuis v2026.5.40) en parsant le `` de la page Planning → liste `[{id, name}, …]` des groupes disponibles | +| `detectTeamFromEV` (paramétrable depuis v2026.5.40) | Liste les membres d'un groupe ; accepte un `groupId` en argument pour basculer entre SI-CSS / SI-EXT | | `evFetch` | Wrapper fetch avec headers EV (Referer, X-Requested-With) | + +## Configuration persistée + +`chrome.storage.local["admin_config"]` : + +| Clé | Type | Rôle | Introduite | +|---|---|---|---| +| `team` | `{id: name}` | Liste des techniciens inclus | v5.0.0 | +| `recurringAbsences` | `{id: [days]}` | Jours de la semaine d'absence récurrente | v5.0.0 | +| `groupId` | string | ID du groupe EV sélectionné | v5.0.0 | +| `groupName` | string | Nom du groupe sélectionné (cache d'affichage) | v2026.5.40 | +| `detectedGroups` | `[{id, name}]` | Cache de la dernière détection des groupes | v2026.5.40 | +| `evOrigins` | `[interne, externe]` | Domaines EasyVista éditables dans l'admin | v2026.5.40 | +| `theme` | `auto`/`light`/`dark` | Préférence thème | v2026.5.39 | +| `textZoom` | `-2..+2` | Niveau de zoom du texte | v2026.5.39 | +| `cacheDays` | number | Durée de rétention du cache (défaut 7) | v2026.5.39 | +| `dayStart` / `dayEnd` | number | Plage horaire de la timeline (défaut 8-18) | v2026.5.39 | + +`localStorage["view_mode"]` : `classic` ou `horizontal` (depuis v2026.5.32).