Carnet d'adresses : ajout/modification via une popup modale
- Formulaire de création/modification affiché dans une fenêtre modale (bouton « Ajouter une adresse » + action « Modifier » d'une ligne) - Fermeture au succès, sur « Annuler » ou clic sur l'arrière-plan - Suggestions BAN rendues dans le flux du panneau pour éviter la troncature - Specs : Exigence 15 (nouveau critère 17) + description CarnetAdressesComponent
This commit is contained in:
@@ -60,6 +60,9 @@ export class CarnetAdressesComponent implements OnInit, OnDestroy {
|
||||
/** Identifiant de l'adresse en cours d'édition (null = création). */
|
||||
readonly editionId = signal<number | null>(null);
|
||||
|
||||
/** Ouverture de la popup de création / modification. */
|
||||
readonly modaleOuverte = signal(false);
|
||||
|
||||
/** Suggestions BAN courantes pour le champ adresse. */
|
||||
readonly suggestions = signal<BANFeature[]>([]);
|
||||
|
||||
@@ -131,6 +134,24 @@ export class CarnetAdressesComponent implements OnInit, OnDestroy {
|
||||
denomination: adresse.denomination,
|
||||
adresse: adresse.adresse,
|
||||
});
|
||||
this.modaleOuverte.set(true);
|
||||
}
|
||||
|
||||
/** Ouvre la popup en mode création (formulaire vierge). */
|
||||
ouvrirCreation(): void {
|
||||
this.editionId.set(null);
|
||||
this.latitude = null;
|
||||
this.longitude = null;
|
||||
this.suggestions.set([]);
|
||||
this.form.reset({ denomination: '', adresse: '' });
|
||||
this.modaleOuverte.set(true);
|
||||
}
|
||||
|
||||
/** Ferme la popup uniquement lors d'un clic sur le fond (pas sur le panneau). */
|
||||
fermerSurOverlay(event: MouseEvent): void {
|
||||
if (event.target === event.currentTarget) {
|
||||
this.annuler();
|
||||
}
|
||||
}
|
||||
|
||||
/** Réinitialise le formulaire en mode création. */
|
||||
@@ -140,6 +161,7 @@ export class CarnetAdressesComponent implements OnInit, OnDestroy {
|
||||
this.longitude = null;
|
||||
this.suggestions.set([]);
|
||||
this.form.reset({ denomination: '', adresse: '' });
|
||||
this.modaleOuverte.set(false);
|
||||
}
|
||||
|
||||
/** Réagit à la saisie du champ adresse pour alimenter l'autocomplétion BAN. */
|
||||
|
||||
Reference in New Issue
Block a user