forked from FroSteel/Planification
v4.3.3 — Soft unpin popup + nettoyage tooltip persistance
This commit is contained in:
@@ -0,0 +1,110 @@
|
||||
# Planning techniciens — Vue claire (v4.1.2)
|
||||
|
||||
Extension Chrome/Brave/Edge pour afficher le planning techniciens EasyVista
|
||||
(`itsma.etat-de-vaud.ch` / `itsma.vd.ch`) dans une vue plus lisible.
|
||||
|
||||
## Nouveautés v4.1.2
|
||||
|
||||
- **Vraies infos contact/lieu dans les cartes** : les attributs attr1/attr2 du
|
||||
XML contiennent les infos saisies à la *planification*, qui ne sont pas
|
||||
toujours à jour (le tech a pu corriger le contact/lieu avant intervention).
|
||||
Désormais, pour chaque intervention, on fetch AUSSI le xhr2 en arrière-plan
|
||||
(en plus de la fiche), ce qui apporte les **vraies** infos validées. La
|
||||
carte se met à jour automatiquement quand elles arrivent.
|
||||
- **Clic ouverture restauré** : retour à la logique v4 (fetch fiche à la volée
|
||||
+ extraction checksum + construction URL avec sender adéquat). Le checksum
|
||||
est pré-rempli pendant le fetch arrière-plan, donc au clic l'ouverture est
|
||||
instantanée dans la plupart des cas.
|
||||
|
||||
## Nouveautés v4.1
|
||||
|
||||
- **Fetch des fiches séquentiel (1 par 1)** au lieu de 5 workers en parallèle.
|
||||
Le serveur EasyVista sérialise les requêtes de toute façon, donc le parallélisme
|
||||
n'apporte rien. Et surtout : quand tu changes de date pendant le fetch, l'abort
|
||||
est **instantané** car il n'y a qu'une seule requête en vol au maximum.
|
||||
- **Cache incrémental** : le cache est sauvé toutes les 5 fiches pendant le fetch,
|
||||
pas juste à la fin. Si tu changes de date avant que tout soit fini, les statuts
|
||||
déjà récupérés sont conservés.
|
||||
|
||||
## Nouveautés v4
|
||||
|
||||
**Chargement ~50× plus rapide.** Le nombre de requêtes au serveur EasyVista passe
|
||||
de ~100 par chargement à **1 seule requête** pour l'affichage principal.
|
||||
|
||||
Concrètement, en v3 un chargement initial faisait :
|
||||
- 1 fetch XML planning (`calendar_block`)
|
||||
- ~40 fetches `planning_xhr_2.php` pour les lieux/contacts
|
||||
- ~40 fetches de fiches HTML pour les catégories/refs/statuts
|
||||
- jusqu'à ~40 fetches de l'API timeline
|
||||
|
||||
Total : ~120 requêtes, 10+ Mo, 8 à 15 secondes selon la charge serveur.
|
||||
|
||||
En v4, on a découvert que le XML initial `calendar_block` contient **déjà**
|
||||
dans ses attributs `attr1`/`attr2`/`attr3` le contact, le lieu et la catégorie
|
||||
complète de chaque intervention, et la ref dans le textContent du nœud.
|
||||
Toutes ces infos qu'on allait chercher ailleurs étaient en fait dans la toute
|
||||
première réponse, ignorées par le code.
|
||||
|
||||
Résultat : le premier rendu complet arrive en **moins d'une seconde**. Les
|
||||
fiches individuelles ne sont plus fetchées qu'en arrière-plan, uniquement
|
||||
pour le statut "Clôturé/Résolu" et le commentaire technicien.
|
||||
|
||||
**Lazy-load au survol.** Le texte détaillé d'une intervention (Problème, À faire,
|
||||
Matériel, TFS ancien/nouveau poste...) n'est chargé qu'au premier survol de la
|
||||
ligne, seulement pour l'intervention survolée. Imperceptible pour l'utilisateur,
|
||||
énorme pour le serveur.
|
||||
|
||||
**Concurrence réduite.** Le pic de requêtes parallèles passe de 15 à 5 workers,
|
||||
pour ménager le serveur EasyVista qui a tendance à saturer sous les rafales.
|
||||
|
||||
Toute l'interface utilisateur est **strictement identique** à la v3 — on n'a
|
||||
changé que ce qu'il y a sous le capot.
|
||||
|
||||
## Hérité des versions précédentes
|
||||
|
||||
- Navigation par date : ◀ ▶ et sélecteur
|
||||
- Détection automatique des interventions closes (✓ vert, fond vert)
|
||||
- Cache persistant 7 jours
|
||||
- Ghosts : les interventions disparues d'EasyVista restent visibles dans la vue
|
||||
- Refresh auto 12h et 15h
|
||||
- Annulation coopérative (bouton "Arrêter")
|
||||
- Thème clair/sombre
|
||||
|
||||
## Installation
|
||||
|
||||
1. Décompresser le zip
|
||||
2. Ouvrir Chrome, `chrome://extensions/`
|
||||
3. Activer **Mode développeur** (en haut à droite)
|
||||
4. **Charger l'extension non empaquetée** → sélectionner le dossier `planning-extension-v4`
|
||||
|
||||
Si tu avais déjà la v3 installée, tu peux la supprimer avant — les caches des
|
||||
deux versions sont compatibles (même format).
|
||||
|
||||
## Utilisation
|
||||
|
||||
1. Se connecter à EasyVista dans un onglet (`itsma.etat-de-vaud.ch` ou `itsma.vd.ch`)
|
||||
2. Cliquer sur l'icône de l'extension (depuis n'importe quel onglet)
|
||||
3. La vue claire s'ouvre dans un nouvel onglet
|
||||
|
||||
## Comment ça marche techniquement
|
||||
|
||||
- `background.js` fait les fetches en arrière-plan (via le cookie de session EasyVista).
|
||||
- L'extension détecte automatiquement le `PHPSESSID` depuis un onglet EasyVista ouvert.
|
||||
- **v4 : le XML `planning_xhr.php?div=calendar_block` suffit à afficher tout
|
||||
l'essentiel.** Les champs `attr1`/`attr2`/`attr3` contiennent contact, lieu
|
||||
et catégorie. Le `textContent` du nœud contient la ref (S260.../I260...).
|
||||
- Les fiches individuelles (`index.php?formEvent=...`) ne sont fetchées que pour
|
||||
obtenir le statut Clôturé/Résolu et le commentaire technicien.
|
||||
- Le texte d'action détaillé (Problème/À faire/Matériel/...) est récupéré en
|
||||
lazy-load via `planning_xhr_2.php?id=ACTIONID` au premier survol.
|
||||
- Le cache est stocké dans `chrome.storage.local` (local à ta machine).
|
||||
- Aucune donnée n'est envoyée ailleurs que vers `itsma.etat-de-vaud.ch` et `itsma.vd.ch`.
|
||||
|
||||
## Limitations connues
|
||||
|
||||
- Nécessite un onglet EasyVista ouvert (même en arrière-plan) pour fonctionner
|
||||
- Fonctionne uniquement sur l'intranet cantonal (les fetches échoueront en externe)
|
||||
- Les 8 IDs des techs sont en dur dans le code (si quelqu'un quitte/arrive dans
|
||||
l'équipe, il faut mettre à jour `viewer.js` ligne ~22)
|
||||
- Le statut "Clôturé/Résolu" met quelques secondes à apparaître après le
|
||||
chargement initial (fetch des fiches en arrière-plan, concurrence 5)
|
||||
Reference in New Issue
Block a user