| Retour au Dossier Organisationnel | |
| ANGULAR : Installation, Bonne pratique, Astuces... Validateurs DevExtreme (Validation Rules) |
A l'intérieur d'une zone de saisie devetrem (<dx-text-box>, <dx-check-box>, <dx-date-box>…), il est possible de mettre en place des validateurs de saisie
il se présente sous la forme
<dx-validator validationGroup="infoBanque">
<dxi-validation-rule type="custom" [validationCallback]="customValidator.isValidBicFromDx" message="Le BIC est invalide"/>
</dx-validator>
Pour aller plus loin :
Comme on l'a vu plus haut les validators sont regroupés en validationGroup
Dans le composant on va déclaré une série de procédures (pour une meilleur lecture on essaye de garder la nomenclature)
private Notification= inject(NotificationService)
ngAfterViewInit() {
//votre code ici si besoin
this.triggerValidation();
}
private triggerValidation() {
this.Notification.analyseStockValidation("infoBanque","Information bancaires");
}
handleInfoBanqueChanged() {
// votre code si beoin
this.triggerValidation();
this.infoBancairesChange.emit(JSON.stringify(this.infoBanque))
}
test_warning(){
this.Notification.videWarning();
if (this.personne.dateFinConservation) {
const aujourdhui = new Date(); aujourdhui.setHours(0, 0, 0, 0);
if (this.personne.dateFinConservation && new Date(this.personne.dateFinConservation) < aujourdhui) {
this.Notification.ajouteWarning('RGPD','La date de fin de consentement de cette personne est dépassée')}
else {
const bientot = new Date(); aujourdhui.setHours(0, 0, 0, 0); bientot.setMonth(bientot.getMonth()+6);
if (this.personne.dateFinConservation && new Date(this.personne.dateFinConservation) < bientot) {
this.Notification.ajouteWarning('RGPD','La date de fin de consentement de cette personne va bientôt être dépassée')
}
}
} else {this.Notification.ajouteWarning('RGPD',"La date de fin de consentement de cette personne n'est pas initialisée")}
}
private triggerValidation() {
this.Notification.analyseStockValidation("infoIdentification","Information d'identicateur");
if ((this.SIREN=="")&&(this.RNA=="")) {
this.Notification.ajouteErreur("infoIdentification","Veuillez saisir au moins un des champs SIREN ou RNA")
}
}
Il publie plusieurs fonctions :
| analyseStockValidation(validateGroup:string, nomBloc:string) | validateGroup est le nom du groupe de test (on peut en avoir plusieurs dans un même composant) nomBloc sert à l'affichage à indiquer à l'utilisateur ou se trouve les champs à corriger |