diff --git a/CLAUDE.md b/CLAUDE.md index f1658b8..b0c99bc 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -13,3 +13,42 @@ ## MCP disponibles - baserow : http://192.168.100.33 (données marchés RLA) - portainer : http://192.168.100.33:9000 (déploiement Docker) + +## Architecture frontend (index.html) +- Fichier unique SPA — HTML + CSS + JS inline +- API REST : `/api/auth/login`, `/api/marches`, `/api/stats`, `/api/pilotage-proactif`, `/api/pipeline`, `/api/users`, `/api/logs`, `/api/export/:format` +- JWT stocké en localStorage (`rla_jwt`) +- Thème persisté en localStorage (`rla_theme`) +- Rôles : `user` (lecture, régions restreintes) · `admin` (pipeline) · `superadmin` (users, logs, exports) + +## Champs API normalisés via `normalizeMarche(r)` +Appeler `normalizeMarche(r)` à la réception — ensuite utiliser uniquement : +- `r.id_marche`, `r.region`, `r.taux_phy` (number), `r.tot_marche` (number), `r.date_debut`, `r.date_fin`, `r.observation` (string) + +## Régions Zone Sud — source unique +Défini dans `CONFIG.ALL_REGIONS` (config.js). Ne pas dupliquer dans le HTML. +Accès via la variable globale `ALL_REGIONS` (initialisée depuis CONFIG). + +## Changelog v4 — 2026-04-18 +### Bugs corrigés +- `logo-TT.png` / `Nabil.Derouiche.jpg` absents → remplacés par `logo-RLA.svg` + avatar initiales +- Thème par défaut : `loadTheme()` utilise désormais `CONFIG.DEFAULT_THEME` (plus d'incohérence avec config.js) +- `showSlide()` : active uniquement les `btn-slide-N`, pas les boutons export (ancien bug d'index) +- Filtre entrepreneur "En Service" : se réinitialise quand la région change (`onServiceRegionChange`) +- Variable `const now` inutilisée supprimée + +### Améliorations +- **normalizeMarche()** : préprocesseur centralisé des champs API multi-noms +- **ALL_REGIONS centralisé** dans config.js, injecté partout via `buildRegionOptions()` +- **2 graphiques région** dans Vue Générale : avancement moyen + marchés actifs par région (bar charts) +- **Taille de page configurable** : sélecteur 10/25/50/100 dans la pagination +- **Icônes de tri actives** : fa-sort-up / fa-sort-down + classe CSS sur colonne active +- **Filtres période** sur liste Marchés (date début / date fin) + bouton reset +- **Filtre région + état** dans slide Pilotage Proactif +- **Modal édition utilisateur** : modifier rôle, région, mot de passe (PATCH /api/users/:id) +- **Toast de confirmation** pour suppression utilisateur (remplace `confirm()` natif) +- **Gestion session expirée** : 401 → toast warning + déconnexion automatique après 1,5s +- **Titre onglet dynamique** : `⚠️ N alertes — Marchés RLA` si alertes actives +- **Toast unifié** (error / success / warning) remplace errorToast mono-usage +- **Footer** : avatar initiales SVG remplace image absente +- **Touche Escape** ferme le modal édition diff --git a/config.js b/config.js index 43e767e..5fc77cc 100644 --- a/config.js +++ b/config.js @@ -15,14 +15,17 @@ const CONFIG = { // Thème par défaut DEFAULT_THEME: 'light', + // Régions Zone Sud (source unique) + ALL_REGIONS: ['Gabes','Gafsa','Kebili','Medenine','Sfax','Tataouine','Tozeur'], + // Couleurs régions REGION_COLORS: { - 'Gabes': '#17A2B8', - 'Gafsa': '#22C55E', - 'Kebili': '#9333EA', - 'Medenine': '#0EA5E9', - 'Sfax': '#002855', + 'Gabes': '#17A2B8', + 'Gafsa': '#22C55E', + 'Kebili': '#9333EA', + 'Medenine': '#0EA5E9', + 'Sfax': '#002855', 'Tataouine': '#14B8A6', - 'Tozeur': '#818CF8' + 'Tozeur': '#818CF8' } -}; \ No newline at end of file +}; diff --git a/index.html b/index.html index 3691fda..dfd24ef 100644 --- a/index.html +++ b/index.html @@ -4,6 +4,7 @@
+ Zone Sud — Tableau de Bord
+ Chargement...
| Référence | Entrepreneur | Projet | Région | Avt. Phy. | Délai Rest. | Niveau |
|---|---|---|---|---|---|---|
| Référence | Entrepreneur | Projet | Région | +Avt. Phy. | Délai Rest. | Niveau | +
| Chargement... | ||||||
| Référence | Entrepreneur | Projet | Région | Avt. Phy. | Délai Rest. | Résultat |
|---|---|---|---|---|---|---|
| Référence | Entrepreneur | Projet | Région | +Avt. Phy. | Délai Rest. | Résultat | +
| Chargement... | ||||||
| Référence | -Région | -Entrepreneur | -Projet | -Statut | -Avt. Phy. | -Période | -Montant | +Référence | +Région | +Entrepreneur | +Projet | +Statut | +Avt. Phy. | +Période | +Montant |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chargement... | |||||||||||||||
| Description du projet | Régions | Estimation (DT) | Durée (mois) | Date prévisionnelle DCA |
|---|---|---|---|---|
| Description du projet | Régions | Estimation (DT) | +Durée (mois) | Date prévisionnelle DCA | +
| Chargement... | ||||