Synthèse Kms : largeur de lecture bornée au lieu de la pleine largeur

Sur grand écran, la pleine largeur rendait une ligne du tableau peu
lisible (le mois et le bouton d'export étaient trop éloignés). L'écran
Synthèse Kms adopte désormais une largeur maximale de 1100 px centrée,
comme Specs. Trajets et Carnet d'adresses restent en pleine largeur.

Specs (requirements 12.27, design-requirements 12.5, design) mises à
jour en cohérence.
This commit is contained in:
2026-10-11 20:42:05 +02:00
parent 3d9557f852
commit 77cb5b87a7
4 changed files with 9 additions and 4 deletions
+2 -2
View File
@@ -255,7 +255,7 @@ src/
- **Barre d'action au-dessus du tableau** : un unique bouton « Enregistrer » qui persiste uniquement les Montant_Regle **modifiés** depuis le dernier chargement (plusieurs mois en une seule action) ; pas de bouton d'enregistrement par ligne
- **Ligne TOTAL** : total kilométrique annuel, Montant_Reel (total du remboursement réel), **cellule « indication 80% » vide**, total réglé (somme des Montant_Regle, non modifiable), bouton « Export PDF » qui exporte le rapport **annuel** ; aucun bouton « Enregistrer » sur cette ligne
- **Aucun nouvel endpoint backend** : composition d'endpoints existants — `GET /api/regularisation/{annee}` (barème, km mensuels, Frais_Reel_Mensuel, total annuel, Montant_Reel, total réglé), `GET /api/montant-previsionnel/{annee}/{mois}` (indication 80%), `PUT /api/montants-regles` (upsert à l'enregistrement), `GET /api/exports/mensuel/{annee}/{mois}` et `GET /api/exports/annuel/{annee}` (exports PDF)
- **Pleine largeur** : l'écran occupe toute la largeur disponible (pas de largeur maximale centrée)
- **Largeur de lecture limitée** : l'écran a une largeur maximale de lecture (~1100 px) centrée, afin de garder une ligne de tableau lisible sur grand écran (le mois à gauche reste proche des actions à droite)
- Tous les kilomètres sont formatés selon `formatKm()` (signal `precisionDistance` de `ParametresApplicationService`), reflétant Precision_Distance — voir spec `precision-distances-km` ; les montants en euros à 2 décimales
- Le **détail des Trajets un par un n'est plus affiché** dans cet écran de synthèse : il reste consultable sur `ConsultationJourComponent` (écran « Trajets »)
@@ -394,7 +394,7 @@ src/
- Rendu : le Markdown (`GET /api/specs/{cle}`) est converti en HTML par **`marked`** (GFM : titres, listes, tableaux, code), puis **assaini par `DOMPurify`** avant injection (`[innerHTML]`) — Exigence 19.7
- **Diagrammes Mermaid** : un renderer `marked` transforme les blocs ` ```mermaid ` en `<pre class="mermaid">` ; après injection du HTML (déclenchée via `setTimeout` pour laisser Angular résoudre le `@ViewChild`), **Mermaid.js** (importé dynamiquement) rend ces blocs en SVG (`securityLevel: 'loose'` pour accepter les libellés HTML type `<br/>`). En cas d'échec de rendu d'un diagramme, le bloc de code brut reste visible.
- Accès derrière `authGuard` (mêmes règles que les autres vues protégées)
- **Largeur de lecture limitée** : à la différence des écrans « Trajets », « Carnet d'adresses » et « Synthèse Kms » (passés en pleine largeur), le `SpecsComponent` conserve une largeur maximale centrée adaptée à la lecture (comportement inchangé)
- **Largeur de lecture limitée** : à la différence des écrans « Trajets » et « Carnet d'adresses » (passés en pleine largeur), le `SpecsComponent` conserve une largeur maximale centrée adaptée à la lecture (comportement inchangé) ; l'écran « Synthèse Kms » adopte lui aussi une largeur de lecture limitée centrée (~1100 px)
**`ProfilConfigureGuard`** (garde de route Angular — `CanActivate` / `CanActivateFn`)
- Au chargement de l'application, appelle `ProfilService.getEtat()` (`GET /api/profil/etat`)