Commit Graph
6 Commits
Author SHA1 Message Date
MadJax 058481c192 Liste : jour de semaine dans l'en-tête + bouton dédié d'ajout par journée
Retour d'usage : avec plusieurs journées ouvertes, viser le bouton principal
d'ajout en traversant la liste faisait dériver la date ciblée (le survol pilote
la journée affichée sur la carte).

- En-tête de journée réorganisé : jour de la semaine avant la date (ex. « Lundi
  15/09/2026 »), nombre de trajets à la suite, puis un bouton dédié « + » à
  l'extrémité droite (infobulle « Ajouter un trajet sur cette journée »).
- Le bouton « + » ouvre la création avec la date de SA journée, indépendamment
  de la date affichée sur la carte (Output ajouterSurJournee -> conteneur fixe
  lun. 21 sept. 2026 12:54:31 CEST avant ouverture via ouvrirCreationSur). stopPropagation pour ne pas
  déclencher le repliage/dépliage au clic.
- Style : fond bleu IAD / texte blanc par défaut, survol orange (cohérent avec
  les autres boutons d'action).
- Locale française enregistrée (registerLocaleData(localeFr) + LOCALE_ID
  'fr-FR' dans app.config.ts) pour l'affichage du jour de la semaine.

Specs : requirements.md (exigence 12, critères 6 et 24) et design.md
(TrajetListComponent, locale) mis à jour.
2026-09-21 12:54:31 +02:00
MadJax 937609a83b Consultation : carte pilotée par le survol, plus de navigation jour
Refonte de l'interaction carte/liste suite au retour d'usage :

- Suppression de la bande de navigation « Jour préc. / date / Jour suiv. »
  (boutons, code et styles associés retirés).
- La journée affichée sur la carte suit le SURVOL des trajets : survoler un
  trajet bascule la carte sur sa journée (Subject debouncé ~80 ms) et met le
  tracé en évidence ; en fin de survol, la carte reste sur la dernière journée
  survolée. Au chargement d'un mois, la carte se cale sur la dernière journée
  ayant des trajets.
- Bouton « Ouvrir toutes les journées » (avant « Ajouter un trajet » pour ne pas
  décaler ce dernier ; affiché seulement s'il reste des journées repliées).
- Surbrillance du groupe de la journée affichée sur la carte (en-tête bleu
  accentué), pilotée par le nouvel Input jourAffiche de la liste.
- Harmonisation : les mois « avec données » du sélecteur passent au même bleu
  que la journée mise en avant (le mois sélectionné reste en bleu plein).
- Date par défaut à la création : date de la carte, sinon date du jour (inchangé).

Specs : requirements.md (exigence 12, glossaire Sélecteur_Temporel) et design.md
(ConsultationJour, TrajetList, SelecteurTemporel) mis à jour.
2026-09-20 22:35:34 +02:00
MadJax 3342fd8ec2 Liste : journées repliables + libellé « Choisir un mois »
- Sélecteur temporel : libellé « 📅 Choisir une date » → « 📅 Choisir un mois ».

- Liste mensuelle : chaque journée est désormais repliable (en-tête cliquable
  avec chevron, date et nombre de trajets). Par défaut toutes les journées sont
  repliées ; au changement de mois, seule la dernière journée comportant des
  trajets est dépliée. Les mises à jour au sein du même mois (ajout, suppression,
  réordonnancement) conservent l'état d'ouverture courant.

- La date, désormais portée par l'en-tête du groupe, est retirée de chaque ligne
  de trajet (suppression du doublon) ; le commentaire occupe seul sa ligne.

Builds dev et prod OK.
2026-09-15 21:01:06 +02:00
MadJax 48d75b8e06 Consultation par mois : liste mensuelle groupée par jour, carte par jour
Refonte de la navigation temporelle suite au retour d'usage :

- Sélecteur temporel limité à année/mois (suppression du segment jour).
  Nouvel Output moisSelectionne: {annee, mois} en remplacement de
  dateSelectionnee (jour ISO). Surbrillance des mois avec données conservée.

- Consultation : deux états distincts. Le signal mois pilote le chargement
  de la liste (tous les trajets du mois, triés par date), le signal date
  pilote la carte (trajets du jour) et la date par défaut à l'ajout/insertion.
  Bande « ‹ Jour préc. / date / Jour suiv. › » au-dessus de la carte, bornée
  au mois sélectionné. La navigation jour ne recharge que la carte.

- Liste : trajets du mois groupés par journée (en-tête de date). Un
  cdkDropList indépendant par jour (listes non connectées) : le
  réordonnancement par glisser-déposer est limité à chaque journée, avec
  recalcul des positions internes et rétablissement en cas d'échec.

Builds dev et prod OK. Backend inchangé (API résumé mensuel/réordonner
déjà en place).
2026-09-15 20:53:25 +02:00
MadJax 09c24d5f59 UX consultation, trajets aller/retour et rafraîchissement des totaux
- Totaux : rafraîchissement immédiat du panneau (jour/mois/année + montant
  prévisionnel) après création/modification/suppression/réordonnancement d'un
  trajet, sans changer de jour (ViewChild + méthode publique rafraichir()).
- Trajets Aller/Retour : case à cocher au formulaire ; la distance comptée est
  doublée (distance simple stockée + booléen AllerRetour, distance effective
  utilisée dans tous les agrégats : totaux, résumés, barème, régularisation, PDF).
  Migration TrajetAllerRetour. Badge « A/R » dans une colonne dédiée en début de
  ligne pour garder date/adresses alignées.
- Mise en page de la page Trajets : vue à hauteur fixe où seule la liste défile ;
  colonne gauche figée (sélecteur de date + navigation, totaux, carte) et bande
  fixe (véhicule + bouton d'ajout) au-dessus de la liste. Layout applicatif global
  en pleine hauteur (app.component).
- run-dev.sh : chargement de la clé JWT depuis .env (ou secret de dev aléatoire) et
  Auth__FrontendBaseUrl sur le frontend dev ; rappel du lien de reset journalisé.

Build backend (solution) et frontend (production) OK.
2026-09-15 12:33:10 +02:00
MadJax e3f946f7d4 SchotzIAD KM Tracker : suivi des trajets kilométriques (Angular + .NET 8)
Application complète de saisie et de suivi des trajets kilométriques avec
calcul de distance routière (OpenRouteService), barème kilométrique, résumés
et régularisation annuelle.

Backend (ASP.NET Core .NET 8, EF Core, SQLite) :
- Trajets (CRUD, réordonnancement, insertion), calcul de distance ORS avec
  fallback Haversine, géométrie d'itinéraire stockée par trajet, recalcul en masse.
- Profil, véhicules (avec dénomination), carnet d'adresses nommées, cache d'adresses.
- Barème kilométrique : tranches multiples par puissance fiscale, borne max
  exclusive avec 'illimité' (KmMax nullable), coefficient à 3 décimales,
  recopie du dernier barème connu.
- Résumés mensuel/annuel, montants réglés, régularisation, export PDF.

Frontend (Angular 22, zoneless + signals) :
- Consultation par jour, navigation temporelle synchronisée, carte Leaflet,
  formulaire de trajet (adresses nommées, domicile, autocomplétion BAN).
- Détection de changement zoneless (indépendante de zone.js).

Hébergement : Docker Compose (nginx + backend), scripts run-dev.sh / run-docker.sh.
2026-09-14 02:08:27 +02:00