Evento pulsante

Nella tabella «ButtonEvent» del database dimostrativo, i campi del record («caption», «the color», «Tooltip», «badge.caption», «badge.color») regolano l'etichetta, il colore, il tooltip e il badge del pulsante «Bonjour», tramite la funzione onUpdate descritta qui sotto.
Personalizzare i pulsanti con Ninext
Con Ninext è possibile modificare l'aspetto dei pulsanti di Ninox definendo una funzione chiamata onUpdate nella formula «Display field only, if» del pulsante. Questa funzione deve restituire un oggetto che descrive gli elementi visivi da modificare, e lo script deve terminare con un booleano che indica se il pulsante vada visualizzato.
Con questo metodo si può:
- Cambiare l'etichetta del pulsante.
- Aggiornare il tooltip (o titolo) del pulsante.
- Cambiare il colore del pulsante, tra i tre stili di pulsante di Ninox:
"blue"(sfondo blu),"red"(sfondo rosa, testo rosso) e"grey"(sfondo bianco, contorno blu, come il pulsante «Bonjour» qui sopra). - Visualizzare un badge per mettere in evidenza un'informazione importante.
Questa funzione si disattiva nelle Impostazioni Ninext, sezione «Miglioramenti interfaccia»: Eventi pulsante (onUpdate) (attivato per impostazione predefinita).
Panoramica rapida delle proprietà JSON
| Proprietà | Descrizione | Esempio / Uso |
|---|---|---|
| caption | Il testo visualizzato sul pulsante. | "Send" / "Cancel" |
| tooltip o title | Il testo mostrato al passaggio del mouse, come tooltip. | "Click to send" |
| buttonColor | Il colore del pulsante: "blue", "red" o "grey", nient'altro. Qualsiasi altro valore viene ignorato e il pulsante mantiene il suo colore. | "blue" |
| badge | Un oggetto che descrive il badge da visualizzare sul pulsante. | Vedere i dettagli qui sotto |
| badge.caption | Il testo, il numero o il simbolo visualizzato nel badge. È sempre un testo: convertite un numero con text(). Un testo vuoto nasconde il badge. | "3" o "!" |
| badge.color | Il colore di sfondo del badge (rosso per impostazione predefinita). Il testo del badge resta bianco. | "red" o "#4970ff" |
Svolgimento generale
- Definire la funzione onUpdate
Nella formula «Display field only, if» del pulsante, dichiarate una funzione chiamata onUpdate. Questa funzione restituisce un oggetto (in formato JSON) che descrive gli elementi da modificare. Riceve come parametro l'etichetta e il colore del pulsante così come sono definiti in Ninox:{ caption, buttonColor }. - Restituire un booleano per la visibilità
La formula deve terminare restituendo un booleano (trueofalse) per indicare se il pulsante vada visualizzato. - Ninext applica le modifiche
All'apertura o all'aggiornamento del record, Ninext esegue la funzione onUpdate, legge l'oggetto restituito e applica dinamicamente al pulsante le modifiche di aspetto.
Implementazione
Blocco di codice unico nella formula «Display field only, if»
"Declaration of the onUpdate function that customizes the button";
function onUpdate(buttonValues : any) do
let count := this.Count;
{
caption: if count > 0 then
"Send (" + count + ")"
else
"Send"
end,
tooltip: "Click to send your request",
buttonColor: if count > 0 then "red" else "blue" end,
badge: {
caption: if count > 0 then text(count) else "" end,
color: "red"
}
}
end;
"Determination of the button's visibility";
this.Count >= 0Commenti:
- La funzione onUpdate costruisce un oggetto che permette di modificare l'etichetta del pulsante (con un indicatore numerico se
Countè positivo), il tooltip, il colore del pulsante e di visualizzare un badge. - L'ultimo blocco di codice restituisce un booleano che determina se il pulsante vada visualizzato.
Esempio minimo (solo badge)
"Declaration of the onUpdate function to display only a badge";
function onUpdate(buttonValues : any) do
let newItems := this.newItems;
{
badge: {
caption: if newItems > 0 then text(newItems) else "" end,
color: "red"
}
}
end;
"The button is always displayed";
trueCommenti:
- Viene restituita solo la proprietà badge, per visualizzare un valore se
newItemsè maggiore di 0. - Il pulsante è visualizzato senza condizioni.
Punti importanti
- Restituzione booleana finale
Senza restituiretrueofalsealla fine, il pulsante non sarà visibile. - Un'etichetta del badge sempre in testo
Ninext mostra il badge solo sebadge.captionè un testo non vuoto. Un numero (3invece di"3") lascia il badge nascosto: usatetext(). - Una funzione valutata a parte
Ninext estrae la sola funzioneonUpdatedalla formula, poi la valuta a parte, nel contesto del record. Non vede quindi né le variabili né le altre funzioni dichiarate altrove in «Display field only, if»: dichiarate all'interno dionUpdatetutto ciò di cui ha bisogno. Può leggere i campi del record (this.Count) e chiamare le funzioni globali del database.
