fix(front) : masque élargi pour l'immatriculation « Tout format » (ERP-189)
« Tout format » n'est plus un champ libre total : masque maska charset (lettres/chiffres/espace/tiret, MAJ, longueur libre) pour les plaques anciennes ou étrangères, filtrant accents/ponctuation/symboles. Format autoritaire côté serveur.
This commit is contained in:
@@ -67,12 +67,14 @@
|
||||
:error="errors.dsd"
|
||||
/>
|
||||
|
||||
<!-- Immatriculation : masque XX-000-XX (plaque FR SIV) sauf « Tout format ».
|
||||
<!-- Immatriculation : masque XX-000-XX (plaque FR SIV) ; en « Tout format »,
|
||||
masque ÉLARGI (lettres/chiffres/espace/tiret, MAJ) pour les plaques
|
||||
anciennes/étrangères, mais sans laisser passer n'importe quoi.
|
||||
PARTAGÉE entre les 2 blocs (RG-5.01) — v-model remonté au form parent.
|
||||
TODO migrer le masque plaque quand @malio/layer-ui couvrira le format. -->
|
||||
<MalioInputText
|
||||
:model-value="immatriculation"
|
||||
:mask="plateFreeFormat ? undefined : PLATE_MASK"
|
||||
:mask="plateFreeFormat ? FREE_PLATE_MASK : PLATE_MASK"
|
||||
:label="t('logistique.weighingTickets.form.immatriculation')"
|
||||
:required="true"
|
||||
:disabled="disabled"
|
||||
@@ -115,6 +117,18 @@ const PLATE_MASK = {
|
||||
tokens: { A: { pattern: /[A-Za-z]/, transform: (c: string) => c.toUpperCase() } },
|
||||
}
|
||||
|
||||
// Masque « Tout format » (RG-5.01) : plaques anciennes / étrangères / engins. On
|
||||
// autorise lettres, chiffres, espace et tiret, en MAJUSCULES, longueur libre —
|
||||
// mais on filtre tout le reste (accents, ponctuation, symboles : « &é"'(_ç… »).
|
||||
// Pattern maska charset du projet (cf. shared/utils/textSanitize) : `preProcess`
|
||||
// retire d'abord les caractères hors charset (le token `multiple` glouton
|
||||
// s'arrêterait sinon au 1er invalide), puis le token laisse passer le reste.
|
||||
const FREE_PLATE_MASK = {
|
||||
mask: 'P',
|
||||
tokens: { P: { pattern: /[A-Z0-9 -]/, multiple: true } },
|
||||
preProcess: (value: string) => value.toUpperCase().replace(/[^A-Z0-9 -]/g, ''),
|
||||
}
|
||||
|
||||
// Masque « chiffres uniquement » (maska, longueur libre) pour Poids et DSD :
|
||||
// ces champs texte sont verrouillés sur des entiers, et de toute façon désactivés
|
||||
// (remplis par la pesée).
|
||||
|
||||
Reference in New Issue
Block a user