Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Validation - input type number graphical fix #1013

Merged
merged 28 commits into from
Dec 5, 2023

Conversation

PiemP
Copy link
Contributor

@PiemP PiemP commented Nov 21, 2023

fix: added type=number to not repeat background
fix: moved button arrow to right

before:
Screenshot 2023-11-21 121540

after:
Screenshot 2023-11-21 121142

Copy link

vercel bot commented Nov 21, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Updated (UTC)
bootstrap-italia ✅ Ready (Inspect) Visit Preview Dec 5, 2023 3:07pm

@astagi
Copy link
Member

astagi commented Nov 21, 2023

Grazie @PiemP questa mi era proprio sfuggita.. devo aggiungere all'esempio di validazione un campo numerico così da vedere cosa succede, poi mergiamo

@astagi
Copy link
Member

astagi commented Nov 21, 2023

@PiemP perdonami non riesco a replicare il tuo problema, attualmente il campo numerico in validazione si presenta così, hai un codice per replicare il problema? Grazie!

image

@PiemP
Copy link
Contributor Author

PiemP commented Nov 21, 2023

@PiemP perdonami non riesco a replicare il tuo problema, attualmente il campo numerico in validazione si presenta così, hai un codice per replicare il problema? Grazie!

image

mi fai vedere il codice html del tuo esempio? Lavoro su una versione più vecchia di Bootstrap Italia ma mi sembra di aver visto che il fix mancasse...magari ho preso un abbaglio.

Grazie

@PiemP
Copy link
Contributor Author

PiemP commented Nov 21, 2023

@astagi ho capito cosa è successo! Non ho applicato la classe form-control ai miei campi input. Applicando quella classe vengono applicate le seguenti regole contenute nel file forms.scss:

.form-control {
    background-position: center right !important;
    background-repeat: no-repeat !important;
    background-size: 45px 45% !important;
}

per cui la regola che ho editato relativa alle regole del background degli elementi validi e invalidi è ridondante?

background-repeat: no-repeat;
background-size: 37px 21px;
background-position: right center;

background-repeat: no-repeat;
background-size: 37px 21px;
background-position: right center;

@astagi
Copy link
Member

astagi commented Nov 21, 2023

Si penso sia ridondante @PiemP , qua trovi l'esempio del campo numerico con validazione. Se ti torna tutto direi che possiamo chiudere questa PR.

@PiemP
Copy link
Contributor Author

PiemP commented Nov 21, 2023

Scusa se ti disturbo ancora @astagi ma effettivamente ho notato un'altra cosa... io in quella circostanza uso il campo input numerico per gli importi e nell'esempio non viene usata la classe form-control...e se la applico gli allineamenti vengono sfasati. Chiudo qui e apro un'altra issue?

Oppure fixo tutto qui...la modifica relativa ai bottoni input-number-add input-number-sub resta valida in questa circostanza con qualche modifica perché, usando form-control, cambiano un pò gli ingombri.

Inoltre non sarebbe male rimuovere il codice ridondante... però mi fa un pò paura la fase di test... 😖

Attendo tue a riguardo.
Grazie e buona serata.

@astagi
Copy link
Member

astagi commented Nov 22, 2023

@PiemP grazie mille! in effetti si con form-control noto questo problema!

image

provo a mergiare sull'esempio la tua patch e vediamo se risolve

@astagi
Copy link
Member

astagi commented Nov 22, 2023

@PiemP
Copy link
Contributor Author

PiemP commented Nov 22, 2023

@astagi mi sembra che il fix sul campo currency ha funzionato.

Aggiorno il codice della documentazione aggiungendo la classe form-control agli esempi. Vuoi che faccio una prova eliminando il codice ridondante dentro _just-validate.scss ?

Grazie a te.

@astagi
Copy link
Member

astagi commented Nov 22, 2023

Perfetto, grazie @PiemP , si se vuoi fare delle prove con la rimozione di codice eventualmente ridondante prova pure.

@PiemP
Copy link
Contributor Author

PiemP commented Nov 22, 2023

Ci sono quasi @astagi .... ho un problemino con autocomplete... bisognerebbe far passare la classe form-control nella creazione del campo input di tipo "text"....ma non capisco come fare... se non lo sai neanche tu ripristino un paio di regole.

https://bootstrap-italia-gpm8hkcib-dip-trasformazione-digitale.vercel.app/docs/esempi/form/

Un'altra cosa delicatina, sempre riferita al campo currency, è questa modifica qui che ho fatto:

.input-number {
.form-feedback {
position: absolute;
}
}

Questo serve per non far finire fuori dal campo input la freccia in basso del bottone con la classe input-number-sub (ho provato a risolverlo usando la regola top invece di bottom ma poi ho pensato che con i campi lg sarebbe sballato di nuovo). Per sistemare le cose bisognerebbe che il messaggio di errore uscisse dal tag span.input-number di modo che il suo ingombro non venga conteggiato nell'altezza del campo input. Questo problema lo ha anche il campo autocomplete.

Un altro modo per risolvere la cosa sarebbe quella di impostare tutti i form-feedback con position: absolute e mantenere/ aumentare il margin-bottom della classe form-group per recuperare lo spazio che il form-feedback non va più ad occupare...ma io non sono un designer e non ho le conoscenze per valutare per bene una modifica di questo tipo.

Fammi sapere.
Grazie.

@astagi
Copy link
Member

astagi commented Nov 23, 2023

Ci guardo @PiemP al momento così al volo non saprei :/

@astagi
Copy link
Member

astagi commented Nov 23, 2023

@PiemP allora ho visto che per autocomplete non c'è modo di passare una classe form-control all'input che poi viene generato, forse l'unica è agire via JavaScript, devo provare (qualcosa del tipo se è stata messa la classe form-control alla generazione dell'input mettere la classe form-control).

Per il secondo punto dobbiamo un attimo riaggiornarci, pingo anche @zetareticoli e @Fupete .

Grazie per ora!

@PiemP
Copy link
Contributor Author

PiemP commented Nov 23, 2023

Questo serve per non far finire fuori dal campo input la freccia in basso del bottone con la classe input-number-sub (ho provato a risolverlo usando la regola top invece di bottom ma poi ho pensato che con i campi lg sarebbe sballato di nuovo)

@astagi provo a vedere se riesco a creare una versione dell'input currency utilizzando input-group di bootstrap

bisognerebbe far passare la classe form-control nella creazione del campo input di tipo "text"....ma non capisco come fare... se non lo sai neanche tu ripristino un paio di regole.

questa cosa non è fondamentale... aggiungo una regola tipo:

input[aria-autocomplete] {
  background-repeat: no-repeat;
  background-size: 37px 21px;
  background-position: right center;
  &.just-validate-success-field {
    border-bottom: 1px solid #008758;
  }
  &.is-invalid {
    border-bottom: 1px solid #d9364f;
  }
}

e sistemiamo la cosa.

Il problema con form-feedback, forse si risolve per il campo currency utilizzando input-group ... rimarrebbe il problema sul campo autocomplete dove non le soluzioni permangono quelle che ho ipotizzato in precedenza.

Procedo con un test usando input-group e vedo cosa ottengo sul campo currency.

@PiemP
Copy link
Contributor Author

PiemP commented Nov 23, 2023

Nell'ultimo commit c'e una versione del campo currency e percentage che dovrebbe supportare input-group (sorry, non ho spiegato il perchè: il vantaggio di questa soluzione è che viene supportato input-group-sm e input-group-lg mantenendo l'allineamento degli elementi in ogni situazione; inoltre il form-feedback non causa i problemi avuti in precedenza).

Se decidete che questa cosa va bene bisogna aggiornare anche i docs di modo che rispetti il nuovo formato HTML richiesto.

Ho notato un altro problema del campo currency. Se si usano i pulsanti sembra che non viene propagato l'evento di change del valore del campo numerico. Questo fa sì che il validatore non si renda conto di quando il campo ritorna in un valore corretto e sembra non far scattare la funzione di checkLimit.
Esempio sull'esempio disponibile: se nel campo importo si inserisce 2,5 euro come valore, si invia il form facendo comparire l'errore e si aumenta il valore tramite i pulsanti si ottiene che il messaggio di errore non sparisce finché non si opera sul campo con la tastiera o non si fa il submit del form.
Altro problema legato a questa cosa: la label non "sale" se si cambia i valori tramite i pulsanti.
Questa nuova problematica sembra che fosse già presente prima delle mie modifiche.

Rimangono gli altri problemi relativi al form-feedback per il campo autocomplete.

@astagi
Copy link
Member

astagi commented Nov 27, 2023

@PiemP mi guardo le tue considerazioni con calma oggi, intanto sono riuscito a far supportare la classe form-control al componente Autocomplete, fammi sapere se ti funziona grazie mille 👍

@PiemP
Copy link
Contributor Author

PiemP commented Nov 27, 2023

@astagi grazie alla tua modifica rimarrebbe:

Autocomplete form-feedback:

image

Currency e Percentage:

  • aggiornamento documentazione se vi va bene la mia soluzione di utilizzare input-group.
  • verificare il discorso del change event

Volendo si potrebbe risolvere i problemi di Currency e Percentage comprendendo la necessità che ha portato a questi 2 campi: è un discorso di accessibilità? Perché parlando con un mio collega che usa screen reader, mi ha detto che a livello accessibilità i pulsanti introdotti dal browser by default funzionano bene. Si, non hanno il testo descrittivo che indicano all'utente che stai aumentando/diminuendo un importo...però non so quanto questa cosa sia necessaria.

Secondo me possiamo chiudere questo PR con l'aggiornamento della documentazione (sempre che la mia soluzione vi vada bene) ed eventualmente aprirei un issue per il discorso del form-feedback di autocomplete e per una verifica della gestione dell'evento change perché credo che questa cosa non si limiti solo a questo campo. Utilizzare l'evento input probabilmente non è corretto...non so.

PiemP and others added 22 commits December 4, 2023 10:04
fix: validation background rule for textarea
fix: improve position of input-numeri buttons
fix: form-feedback cause button in wrong position
fix: textarea border on valid/invalid status
fix: textarea position and icon dimension
fix: after add form-control class removed css rule
docs: updated documentation
docs: removed old input currency style
fix: disabled, use same background color of other input
fix: disabled, improved contrast from value to background
fix: disabled, apply background to input-group items
fix: resize input-group no need different behavior
@astagi astagi merged commit 5fcab94 into italia:main Dec 5, 2023
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Validazione - Autocomplete form-feedback
2 participants