From d9618d140bce2ade0877ed2357b7657ee356077a Mon Sep 17 00:00:00 2001 From: Nikolaz Date: Tue, 15 Sep 2026 21:18:13 +0200 Subject: [PATCH] Mois vide : suppression des alertes rouges et du message vide en double MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Un mois sans trajet est un cas normal, pas une erreur : - Panneau totaux : plus d'alerte « Impossible de charger les totaux ». Un jour/mois sans trajet affiche simplement des totaux à 0,00 km. Signal erreur supprimé. - Consultation : plus d'alerte « Impossible de charger les trajets du mois ». Signal erreur et variable resumeEnErreur supprimés ; un échec de résumé affiche une liste vide (les vraies indisponibilités serveur restent signalées par l'intercepteur global). - Message vide unique : « Aucun trajet pour ce mois » n'est plus affiché en double (retiré de la liste, conservé côté consultation avec garde de chargement). Builds dev et prod OK. --- .../consultation-jour.component.html | 4 ---- .../consultation-jour.component.ts | 16 +++------------- .../panneau-totaux/panneau-totaux.component.html | 4 ---- .../panneau-totaux/panneau-totaux.component.ts | 8 +++----- .../trajet-list/trajet-list.component.html | 4 +--- 5 files changed, 7 insertions(+), 29 deletions(-) diff --git a/frontend/src/app/features/consultation-jour/consultation-jour.component.html b/frontend/src/app/features/consultation-jour/consultation-jour.component.html index 6d1f29f..9733c27 100644 --- a/frontend/src/app/features/consultation-jour/consultation-jour.component.html +++ b/frontend/src/app/features/consultation-jour/consultation-jour.component.html @@ -69,10 +69,6 @@ - @if (erreur()) { - - } - @if (chargement()) {

Chargement des trajets…

} diff --git a/frontend/src/app/features/consultation-jour/consultation-jour.component.ts b/frontend/src/app/features/consultation-jour/consultation-jour.component.ts index 9a5ec05..3e4d329 100644 --- a/frontend/src/app/features/consultation-jour/consultation-jour.component.ts +++ b/frontend/src/app/features/consultation-jour/consultation-jour.component.ts @@ -105,8 +105,6 @@ export class ConsultationJourComponent implements OnInit, OnDestroy { /** Chargement de la journée en cours. */ readonly chargement = signal(false); - /** Message d'erreur de chargement de la journée. */ - readonly erreur = signal(null); private jourSub?: Subscription; private vehiculesSub?: Subscription; @@ -337,19 +335,15 @@ export class ConsultationJourComponent implements OnInit, OnDestroy { const mois = moisCourant.mois; this.chargement.set(true); - this.erreur.set(null); // Chaque observable du forkJoin porte son propre `catchError` afin que le // forkJoin complète TOUJOURS (il n'émet qu'une fois tous les flux complétés). // Ainsi un échec réseau sur le résumé ou la carte ne fige plus l'UI sur - // « Chargement des trajets… ». On mémorise l'erreur du résumé pour l'afficher. - let resumeEnErreur = false; + // « Chargement des trajets… ». Un mois sans données (ou en échec) affiche + // simplement une liste vide et le message « Aucun trajet pour ce mois ». this.jourSub = forkJoin({ resume: this.trajetService.getResumeMensuel(annee, mois, vehiculeId).pipe( - catchError(() => { - resumeEnErreur = true; - return of({ annee, mois, trajets: [], totalKm: 0 } as ResumeMensuel); - }) + catchError(() => of({ annee, mois, trajets: [], totalKm: 0 } as ResumeMensuel)) ), carte: this.trajetService .getTrajetsJournee(date) @@ -393,9 +387,6 @@ export class ConsultationJourComponent implements OnInit, OnDestroy { ? carte : this.filtrerCarteParVehicule(carte) ); - this.erreur.set(resumeEnErreur - ? 'Impossible de charger les trajets du mois.' - : null); // Force la mise à jour immédiate de la liste, des totaux et de la carte // après une navigation Jour ± 1, sans attendre une autre interaction. this.cdr.markForCheck(); @@ -405,7 +396,6 @@ export class ConsultationJourComponent implements OnInit, OnDestroy { // robuste : on affiche l'erreur et on rafraîchit la vue. this.trajets.set([]); this.trajetsCarte.set([]); - this.erreur.set('Impossible de charger les trajets du mois.'); this.cdr.markForCheck(); } }); diff --git a/frontend/src/app/features/panneau-totaux/panneau-totaux.component.html b/frontend/src/app/features/panneau-totaux/panneau-totaux.component.html index b281312..f518aaa 100644 --- a/frontend/src/app/features/panneau-totaux/panneau-totaux.component.html +++ b/frontend/src/app/features/panneau-totaux/panneau-totaux.component.html @@ -1,10 +1,6 @@

Totaux

- @if (erreur()) { - - } - @if (chargement() && !totaux()) {

Chargement des totaux…

} diff --git a/frontend/src/app/features/panneau-totaux/panneau-totaux.component.ts b/frontend/src/app/features/panneau-totaux/panneau-totaux.component.ts index 45ed440..509ea47 100644 --- a/frontend/src/app/features/panneau-totaux/panneau-totaux.component.ts +++ b/frontend/src/app/features/panneau-totaux/panneau-totaux.component.ts @@ -63,8 +63,6 @@ export class PanneauTotauxComponent implements OnChanges, OnDestroy { /** Chargement en cours (totaux et/ou montant prévisionnel). */ readonly chargement = signal(false); - /** Message d'erreur affiché si le chargement échoue. */ - readonly erreur = signal(null); private totauxSub?: Subscription; private montantSub?: Subscription; @@ -98,7 +96,6 @@ export class PanneauTotauxComponent implements OnChanges, OnDestroy { this.totaux.set(null); this.montantPrevisionnel.set(null); this.chargement.set(false); - this.erreur.set(null); this.cdr.markForCheck(); return; } @@ -109,7 +106,6 @@ export class PanneauTotauxComponent implements OnChanges, OnDestroy { const mois = this.moisDe(date); this.chargement.set(true); - this.erreur.set(null); this.cdr.markForCheck(); this.totauxSub = this.trajetService.getTotauxJour(date, vehiculeId).subscribe({ @@ -119,9 +115,11 @@ export class PanneauTotauxComponent implements OnChanges, OnDestroy { this.cdr.markForCheck(); }, error: () => { + // Un mois / jour sans trajet est un cas normal : on affiche des totaux + // nuls plutôt qu'une alerte. Les vraies indisponibilités serveur sont + // signalées globalement par l'intercepteur (notification). this.totaux.set(null); this.chargement.set(false); - this.erreur.set('Impossible de charger les totaux.'); this.cdr.markForCheck(); } }); diff --git a/frontend/src/app/features/trajet-list/trajet-list.component.html b/frontend/src/app/features/trajet-list/trajet-list.component.html index 1049aa3..4bb648d 100644 --- a/frontend/src/app/features/trajet-list/trajet-list.component.html +++ b/frontend/src/app/features/trajet-list/trajet-list.component.html @@ -1,6 +1,4 @@ -@if (groupes().length === 0) { -

Aucun trajet pour ce mois.

-} @else { +@if (groupes().length > 0) { @for (groupe of groupes(); track groupe.date) {