Uniformisation modale staff (Gestionnaire / Administrateur) + champs contrôlés #164
Closed
opened 2026-09-14 12:57:15 +00:00 by jmartin
·
1 comment
No Branch/Tag Specified
master
develop
docs/117-cdc-v1.4-srs-users
docs/rationalisation-0.1.0
feature/164-staff-modal-uniformisation
feature/155-rename-admin-prefix-dashboard
docs/155-phase2-spec
feature/152-remove-est-multiple
feature/161-admin-creation-staff
feature/160-suppressions-dashboard
feature/159-suppressions-backend
feature/135-edition-dossier
feature/153-onglet-dossiers
feature/129-creation-dossier-parent
feature/156-creation-dossier-am
feature/158-affiliation-enfant-foyer
feature/157-enfant-sans-responsable
feature/132-creation-enfant-onglet-enfants
fix/151-get-relais-gestionnaire
backup/auth-fixes
archive/maquette-initiale
v0.1.0
stable
Labels
Clear labels
a11y
admin
api
auth
backend
bug
cdc
cleanup
critique
database
documentation
duplicate
email
enhancement
frontend
gestionnaire
good first issue
help wanted
infra
invalid
juridique
monitoring
on-premise
p0-bloquant
p1-bloquant
p2
p3
p4
phase-1
question
rgpd
security
tests
ui
upload
ux
v0.1.0
wontfix
Accessibilité
Administration
Authentification
Backend NestJS
Something isn't working
Cahier des charges
Nettoyage/Refactoring
Critique
Base de données PostgreSQL
Improvements or additions to documentation
This issue or pull request already exists
Email/Notifications
New feature or request
Frontend Flutter/Web
Gestionnaire
Good for newcomers
Extra attention is needed
Infrastructure Docker/CI-CD
This doesn't seem right
Juridique/Légal
Monitoring/Logs
Configuration on-premise
Priorité 0 - BLOQUANT
Priorité 1 - BLOQUANT
Priorité 2
Priorité 3
Priorité 4
Phase 1
Further information is requested
RGPD/Conformité
Sécurité
Tests unitaires/E2E
Upload fichiers
UX/UI
Issue rattachée au périmètre release 0.1.0
This will not be worked on
No labels
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: jmartin/petitspas#164
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Contexte
Dernière brique UX 0.1.0 : uniformiser la modale création/édition Gestionnaire / Administrateur (
AdminUserFormDialog) sur le design system déjà OK des fiches dashboard (parent / AM / enfant / wizards).Captures « pas OK » :
AlertDialog620, labels flottants Material, footer Material « Modifier », titres avec guillemets.Réf. dépôt :
docs/tmp/modales-staff-uniformisation-mini-spec.mdMini-spec — Uniformisation modale staff (Gestionnaire / Administrateur)
Ticket : #164 — #164
Branche :
feature/164-staff-modal-uniformisation(depuisdevelop)Périmètre : front only — pas d’API / BDD
Milestone : 0.1.0
Objectif
Aligner la modale création / édition / consultation Gestionnaire et Administrateur (
AdminUserFormDialog) sur le design system déjà OK des fiches dashboard (parent / AM / enfant / wizards validation).Référence visuelle / code OK :
ParentEditModal,AmEditModal,ChildDetailModalValidationModalTheme(0xFF6D4EA1,primaryElevatedStyle)ValidationLabeledField+Validation*Field(validation_detail_section.dart)ValidationFormMetricsCible « pas OK » (captures) :
screens/administrateurs/creation/gestionnaires_create.dart→AdminUserFormDialogAppels existants à préserver (API / droits inchangés) :
user_management_panel.dart(création)gestionnaire_management_widget.dart(édition)admin_management_widget.dart(édition admin)Problème actuel
AlertDialogMaterial, largeur 620Dialogcustom, largeur 930,BorderRadius.circular(12)Modifier un "Gestionnaire"+ avatarInputDecorationlabel flottant (bordure qui coupe le libellé)ValidationLabeledField)FrenchPhoneTextFormField/EmailTextFormField/ TF bruts)ValidationPhoneField,ValidationEmailField, etc.)FilledButton.icon« Modifier »)Fermer/Annulerà gauche · primaire pill · dirty-stateSauvegarder/Aucune modification(édition)UX cible
Shell
Dialog+ConstrainedBox(maxWidth: 930)+ coins 12IconButtonclose (X)Dividersous header (comme fiches)Fermer(édition / lecture) ouAnnuler(création) ;Supprimerrouge à gauche si droit (#154 / #160) — même logique queChildDetailModalValidationModalTheme.primaryElevatedStyleTitres
Créer un gestionnaire/Créer un administrateurPrénom NOM(personne) + sous-titre rôle si utile (Gestionnaire,Administrateur)Interdit : guillemets autour du rôle (
"Gestionnaire").Layout champs (édition / création)
Ordre proposé (proche de l’existant, style OK) :
IdentityBlockcomplet (il force ces champs).ValidationLabeledField+ champs contrôlés ci-dessous.Boutons primaires
Créer(disabled si formulaire invalide / submit en cours)Sauvegardersi dirty, sinonAucune modification(disabled)Fermer)Champs contrôlés (obligatoire)
Réutiliser les widgets / utils déjà utilisés par les wizards et fiches. Pas de validation « maison » divergente.
ValidationEditableField+PersonNameInputFormatter_toTitleCaseOK)ValidationEmailFieldvalidateEmail; max length viaEmailMaxLengthFormatterValidationPhoneFieldformatPhoneForDisplay) ;validateFrenchNationalPhone; requis en création ; en édition : conserver règle actuelle (vide autorisé ou aligner sur fiche parent — décision : requis si renseigné, format FR strict ; création = requis)ValidationLabeledField+ obscure toggleDropdownButtonFormFieldrestylé (même décoration / hauteur queValidationFieldDecoration)RelaisService; valeurnull= « Aucun relais » ; disabled si loading / readOnlyRègles métier à conserver (non-régression)
readOnly: consultation sans saveadminMode/withRelais: admin sans relais ; gestionnaire avec_isLockedAdminIdentity)canDeleteGestionnaire/ lignesSuppressionPersonLine)showSuppressionConfirmDialogUserServiceinchangés (hors format téléphone normalisé à l’envoi, déjà le cas)Implémentation suggérée
AdminUserFormDialog: remplacerAlertDialogpar shell type fiches.Form+ValidationLabeledField/ValidationEmailField/ValidationPhoneField/ TF MDP aligné.DashboardFormModalShell(header / divider / footer) partagé — pas obligatoire pour livrer ; OK de dupliquer le pattern une fois comme les autres fiches.screens/administrateurs/creation/gestionnaires_create.dart→widgets/dashboard/staff_user_form_modal.dart(rename classeStaffUserFormModalou garderAdminUserFormDialogtemporairement pour limiter le diff).Décision recommandée : rename fichier + classe
StaffUserFormModal+ update imports (cohérent #155).Hors scope
DetailModal620 / autresAlertDialogmétierCritères d’acceptation
Sauvegarder/Aucune modificationrg AdminUserFormDialog→ 0 ou alias de transition documenté ; imports à jourVérif
Ferme - livre sur develop (
3218daa) et master (f745079squash). StaffUserFormModal (shell 930, Validation fields, dirty-state) ; AdminUserFormDialog retire.