feat(directory) : refonte UI du Répertoire (LST-72) #27

Merged
tristan merged 8 commits from feature/LST-72-amelioration-frontend-de-la-partie-repertoire into develop 2026-06-27 13:29:57 +00:00
Owner

Améliorations frontend de la partie Répertoire (Client / Prospect / Prestataire). Onglet Rapport retravaillé en fin de parcours ; le reste de la logique métier inchangé.

Navigation & liste

  • Onglet actif conservé au retour liste ↔ fiche (flèche app et navigateur) via history.state (hors URL) — util historyTab.ts
  • Colonne « Action » (entête alignée) + feedback hover sur les boutons d'action
  • Conversion prospect → client : modal de confirmation
  • Boutons « Ajouter » : label court + taille Malio standard ; barres d'outils à hauteur homogène (plus de saut entre onglets)

Fiches (Info / Contact / Adresse)

  • Style plat sans box-shadow (comme Starseed)
  • Champs email/téléphone : MalioInputEmail / MalioInputPhone
  • Grilles en 4 colonnes (Info + blocs)
  • Boutons « Nouveau contact/adresse » en secondary ; « Enregistrer » en taille Malio ; marge form↔bouton homogène
  • Bouton retour ghost (mdi:arrow-left-bold)
  • Adresse : flux CP → ville → rue (rue conditionnée au CP+ville, cascade de reset) ; titre du bloc = libellé saisi
  • Suppression d'un bloc Contact/Adresse : modal de confirmation (centralisée dans useDirectoryDetail)
  • Modals (suppression, conversion) basées sur MalioModal (design Starseed) avec nom en gras

Onglet Rapport

  • Bouton d'ajout en taille Malio (« Ajouter »)
  • Suppression compte-rendu : ConfirmModal partagée (remplace l'ancienne modal maison)
  • Suppression d'un document joint : ajout d'une modal de confirmation
  • Upload via MalioInputUpload ; bouton supprimer document aligné (mdi:delete-outline ghost)

Divers

  • fix(auth) : cookie JWT renommé BEARER_LESSTIME (collision localhost avec d'autres apps Symfony)
  • fix(infra) : target makefile fix-uploads-perm (volume uploads_data root → upload local OK)

🤖 Generated with Claude Code

Améliorations frontend de la partie **Répertoire** (Client / Prospect / Prestataire). Onglet **Rapport** retravaillé en fin de parcours ; le reste de la logique métier inchangé. ## Navigation & liste - Onglet actif conservé au retour liste ↔ fiche (flèche app **et** navigateur) via `history.state` (hors URL) — util `historyTab.ts` - Colonne « Action » (entête alignée) + feedback hover sur les boutons d'action - Conversion prospect → client : modal de confirmation - Boutons « Ajouter » : label court + taille Malio standard ; barres d'outils à hauteur homogène (plus de saut entre onglets) ## Fiches (Info / Contact / Adresse) - Style **plat** sans box-shadow (comme Starseed) - Champs email/téléphone : `MalioInputEmail` / `MalioInputPhone` - Grilles en **4 colonnes** (Info + blocs) - Boutons « Nouveau contact/adresse » en secondary ; « Enregistrer » en taille Malio ; marge form↔bouton homogène - Bouton retour **ghost** (`mdi:arrow-left-bold`) - **Adresse** : flux CP → ville → rue (rue conditionnée au CP+ville, cascade de reset) ; titre du bloc = libellé saisi - Suppression d'un bloc Contact/Adresse : **modal** de confirmation (centralisée dans `useDirectoryDetail`) - Modals (suppression, conversion) basées sur `MalioModal` (design Starseed) avec nom en gras ## Onglet Rapport - Bouton d'ajout en taille Malio (« Ajouter ») - Suppression compte-rendu : `ConfirmModal` partagée (remplace l'ancienne modal maison) - Suppression d'un document joint : ajout d'une modal de confirmation - Upload via `MalioInputUpload` ; bouton supprimer document aligné (`mdi:delete-outline` ghost) ## Divers - `fix(auth)` : cookie JWT renommé `BEARER_LESSTIME` (collision localhost avec d'autres apps Symfony) - `fix(infra)` : target makefile `fix-uploads-perm` (volume `uploads_data` root → upload local OK) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
tristan added 1 commit 2026-06-26 12:02:35 +00:00
feat(directory) : conserve l'onglet actif au retour liste ↔ fiche (LST-72)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m23s
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 1m31s
be079cdbe2
Au retour depuis une fiche (flèche de l'app ou du navigateur), la liste
revenait toujours sur l'onglet Clients. L'onglet actif est désormais
transmis via history.state (hors URL), comme sur Starseed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan added 1 commit 2026-06-26 13:43:56 +00:00
feat(directory) : entête Action, hover, modal de conversion et ajustements UI (LST-72)
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 40s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m9s
6b65839061
- Colonne « Action » avec entête (alignée à droite) sur les 3 tableaux
- Feedback hover sur les boutons d'action (poubelle / convertir)
- Conversion prospect → client passe par une modal de confirmation
- ConfirmModal basé sur MalioModal (design Starseed), remplace ConfirmDeleteModal
- Nom (client/prospect/prestataire) en gras dans les modals via <i18n-t>
- Boutons « Ajouter » : label raccourci + taille standard Malio (180px)
- Barres d'outils à hauteur homogène (48px) : le bouton ne saute plus entre onglets

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan added 1 commit 2026-06-26 13:57:59 +00:00
style(directory) : style plat sans box-shadow sur les fiches (LST-72)
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 40s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m39s
5d1cc09a49
Aligne les fiches Client / Prospect / Prestataire sur le design Starseed :
- Onglet Information : grille plate (suppression box blanche + box-shadow)
- Blocs Contact & Adresse : à plat, séparés par un filet noir 1px
  (header titre + bouton supprimer, prop `last` sans bordure en bas)
Onglet Rapport inchangé.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan added 1 commit 2026-06-26 14:02:53 +00:00
fix(auth) : renomme le cookie JWT en BEARER_LESSTIME (LST-72)
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 1m22s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m37s
71c6ba1ce5
Évite la collision de cookie sur le domaine localhost en dev : plusieurs
apps Symfony (ex: Starseed) posaient toutes un cookie `BEARER` partagé,
se faisant écraser l'une l'autre → déconnexions croisées. Le cookie est
désormais nommé par app.

- lexik : token_extractors.cookie.name + clé set_cookies
- security : logout.delete_cookies
- docs (CLAUDE.md, README) mises à jour

Note : vider une fois les cookies de localhost pour purger l'ancien BEARER.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan added 2 commits 2026-06-26 15:10:03 +00:00
Le volume Docker nommé `uploads_data` est créé root:root, or PHP-FPM tourne
en www-data (= uid host) : sans chown, l'upload de documents échoue en local
avec « mkdir(): Permission denied ». Ajoute un target `fix-uploads-perm`
idempotent, branché sur `install` (donc relancé par `reset`).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(directory) : refonte UI des fiches + onglet rapport (LST-72)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m17s
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 1m25s
ba462a091b
Fiches Client / Prospect / Prestataire (onglet Rapport mis à part) :
- Champs email/téléphone : composants MalioInputEmail / MalioInputPhone
- Grilles en 4 colonnes (Info + blocs Contact/Adresse)
- Boutons « Nouveau contact/adresse » en secondary ; « Enregistrer » en
  taille Malio standard ; marge form↔bouton homogène entre onglets
- Bouton retour ghost (mdi:arrow-left-bold) comme Starseed
- Adresse : flux CP → ville → rue (rue conditionnée au CP+ville, cascade
  de reset), titre du bloc = libellé saisi
- Suppression d'un bloc Contact/Adresse : modal de confirmation (logique
  centralisée dans useDirectoryDetail)

Onglet Rapport :
- Bouton d'ajout en taille Malio standard, label « Ajouter »
- Suppression compte-rendu : passe à la ConfirmModal partagée (remplace
  l'ancienne ConfirmDeleteReportModal, supprimée)
- Suppression d'un document joint : ajout d'une modal de confirmation
- Upload via MalioInputUpload ; bouton supprimer document aligné
  (mdi:delete-outline ghost)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan changed title from feat(directory) : conserve l'onglet actif au retour liste ↔ fiche (LST-72) to feat(directory) : refonte UI du Répertoire (LST-72) 2026-06-26 15:10:42 +00:00
tristan added 1 commit 2026-06-27 10:49:16 +00:00
fix(directory) : champ Notes prospect en 2 colonnes, hauteur fixe + scroll (LST-72)
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 1m20s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m35s
eef4bbac1c
Notes passe en col-span-2, hauteur fixe (!h-28) avec scroll interne.
!max-w-none neutralise le max-width:640px inline de MalioInputTextArea
(maxResizeWidth) qui empêchait la textarea de remplir les 2 colonnes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan added 1 commit 2026-06-27 11:06:01 +00:00
Merge branch 'develop' into feature/LST-72-amelioration-frontend-de-la-partie-repertoire
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 44s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Failing after 48s
e0c530d93a
tristan merged commit bbd8a38c95 into develop 2026-06-27 13:29:57 +00:00
tristan deleted branch feature/LST-72-amelioration-frontend-de-la-partie-repertoire 2026-06-27 13:29:57 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MALIO-DEV/Lesstime#27