bloggers bloggers

Marco Napolitano
Messaggi: 79
Stelle: 0
Data: 17/02/22
Jader Jed Francia
Messaggi: 63
Stelle: 0
Data: 18/02/21
Paolo Gambetti
Messaggi: 2
Stelle: 0
Data: 11/11/19
Katia Pazzi
Messaggi: 1
Stelle: 0
Data: 27/06/19
Ezio Lombardi
Messaggi: 11
Stelle: 0
Data: 10/04/18
Chiara Mambretti
Messaggi: 25
Stelle: 0
Data: 27/02/17
Serena Traversi
Messaggi: 3
Stelle: 0
Data: 21/07/16
Francesco Falanga
Messaggi: 8
Stelle: 0
Data: 14/06/16
Antonio Musarra
Messaggi: 2
Stelle: 0
Data: 18/11/13
Simone Celli Marchi
Messaggi: 6
Stelle: 0
Data: 09/07/13
Indietro

Modificare le etichette dell'elemento toggle-switch

Eccoci di nuovo qui, con il primo post del 2020 anche se siamo già a marzo...

Oggi vi voglio parlare di qualcosa di piuttosto semplice ma che ha richiesto il solito tempo di indagine nei sorgenti di Liferay per capire se e come era possibile fare quanto richiesto.

A partire dalla versione 7, Liferay consente di graficare le checkbox anche in un modo alternativo molto più accattivamente; in pratica anzichè dichiarare il campo booleano nel seguente solito modo (ipotizzando che male sia un campo booleano della nostra entità):

<aui:input name="male" />

possiamo definirlo anche così:

<aui:input checked="<%= user.isMale() %>" name="male" type="toggle-switch" />

Questo farà sì che a video, al posto della solita noiosa e bruttina checkbox, sia visualizzato un componente grafico molto più gradevole e moderno.

Il problema di questa soluzione è che il componente grafico visualizza automaticamente l'etichetta SI oppure NO a seconda del valore del campo booleano; apparentemente non è possibile modificare queste etichette perchè il DTD della taglib non lo consente.

Tuttavia, spulciando tra i sorgenti del portale, ho scoperto che la taglib supporta i dynamic attributes ossia, in parole povere, consente di specificare attributi non definiti nel DTD; guarda caso, tra i vari attributi, ci sono anche quelli per personalizzare le suddette etichette: labelOff e labelOn. Ecco quindi come definire il campo del form:

<aui:input checked="<%= user.isMale() %>" labelOff="female" labelOn="male" name="male" type="toggle-switch" />

Vi lascio come esercizio quello di scoprire a cosa servono gli altri attributi dinamici supportati dalla taglib:

  • autoComplete
  • buttonIconOff
  • buttonIconOn
  • dayLight
  • displayStyle
  • format
  • iconOff
  • iconOn
  • nullable
  • timeFormat

Enjoy!

Commenti
Nessun commento. Vuoi essere il primo.