italia / design-angular-kit

Il toolkit Angular conforme alle linee guida di design per i servizi web della PA.
https://italia.github.io/design-angular-kit
BSD 3-Clause "New" or "Revised" License
68 stars 30 forks source link

Validazione attiva di default su tutti gli input porta a comportamenti controintuitivi #346

Open inaitana opened 3 months ago

inaitana commented 3 months ago

Comportamento atteso

Il comportamento di validazione di una form dovrebbe essere configurabile a livello di intera form, non di singolo input. Il default dovrebbe essere quello più intuitivo possibile per l'utente, ovvero quello più comune nelle applicazioni, evidenziare solo gli errori. Se proprio si vuole evidenziare anche gli input corretti, deve esserci un qualche criterio che individui solo quelli per cui è significativo farlo. E deve essere possibile cambiare comportamento senza agire su ogni singolo input.

Comportamento attuale

Dal commit 367bdd6152e24794b4db208d29f96dff974e854e (a mio avviso una regression) la validazione è attiva di default su tutti gli ItAbstractFormComponent, sia quando valid che quando invalid. Questo comporta una lunga serie di comportamenti anomali, ad esempio che basta interagire con una qualunque checkbox perché questa diventi verde senza motivo (era già valida prima, selezionarla e deselezionarla non la rende più valida), come evidente nelle pagine stesse della documentazione (ad esempio https://italia.github.io/design-angular-kit/design-angular-kit#/componenti/checkbox).

Possibili soluzioni

Annullare la regression, oppure introdurre un modo di definire un comportamento personalizzato di default, a livello globale o almeno di intera form.

AntoninoBonanno commented 3 months ago

@astagi si può pensare a ripristinare validationMode a only-invalid e utilizzare un provider ad hoc per configurare globalmente/o singolo componente la configurazione form

astagi commented 3 months ago

Grazie @inaitana del report. Per me va bene @AntoninoBonanno , riusciamo anche ad inserire un esempio nella documentazione di validazione al submit?

AntoninoBonanno commented 3 months ago

@astagi si, qui c'è un esempio https://github.com/AntoninoBonanno/design-angular-kit-pa-demo/blob/08ff44474b428b0c70b192b88e5fde791cb58373/src/app/components/report-tab/report-tab.component.ts