Description du problème
Si je met réfère à un "name" dans un message de validation custom dans un groupe, on affiche directement le name du groupe au lieu d'aller chercher le libellé de l'élément en erreur dans le groupe.
Dans l'exemple suivant, si le champ "debutAnnee" ne respecte pas la validation "anneeUniqueCustom", voici le message d'erreur:
Au lieu de mentionner "anneesRachat", il faudrait voir "Année de début de la période".
- type: repeatableGroup
name: anneesRachat
repeatable: true
limit: 5
label:
fr: Veuillez inscrire l’année correspondant à chaque période concernée par votre demande. Si une de ces périodes s’étend sur plus d’une année, veuillez inscrire toutes les années touchées.
help:
fr: Par exemple, si votre demande concerne une période allant de novembre 2015 à juin 2016, vous devez inscrire « 2015-2016 ».
instanceLabel:
fr: Période
addLabel:
fr: Ajouter une période
removeLabel:
fr: Supprimer cette période
validations:
optional: null
components:
- type: inline
components:
- type: text
name: debutAnnee
label:
fr: Année de début de la période
outerClasses: md
placeholder:
fr: 'exemple 2022'
validations:
date: YYYY
anneeUniqueCustom:
additionals:
:validation-rules: |
{
anneeUniqueCustom: ({ value }) => {
// ----------------------------------------------------------
// Retirer évidemment les debugger et console.log avant de mettre en prod
//debugger
//console.log(value);
//console.log(val('anneesRachat'));
const anneesRachat = val('anneesRachat');
//On vérifie qu'il y a plus d'une période de rachat (si une seule tout est ok)
if(anneesRachat && anneesRachat.length > 1) {
//On filtre le tableau des périodes afin de conserver les périodes concernées par l'année saisie.
const periodes = anneesRachat.filter((rachat) => {
if(rachat.debutAnnee && rachat.finAnnee) {
return value >= rachat.debutAnnee && value <= rachat.finAnnee;
}
return false;
});
//Afin d'être valide, l'année saisie ne peut se retrouver que dans une seule période de rachat (la courante actuellement validée)
return periodes.length <= 1;
} else {
return true;
}
}
}
validation-messages:
date:
fr: L'information du champ « ${name} » doit être inscrite en année (9999).
en: (en)L'information du champ « ${name} » doit être inscrite en année (9999).
anneeUniqueCustom:
fr: La valeur du champ « ${name} » doit être présente à l'intérieur d'une seule période de rachat.
Description du problème Si je met réfère à un "name" dans un message de validation custom dans un groupe, on affiche directement le name du groupe au lieu d'aller chercher le libellé de l'élément en erreur dans le groupe.
Dans l'exemple suivant, si le champ "debutAnnee" ne respecte pas la validation "anneeUniqueCustom", voici le message d'erreur:
Au lieu de mentionner "anneesRachat", il faudrait voir "Année de début de la période".