Eventos de botón

imagen.png

Personalizar los botones con Ninext

Con Ninext puede modificar la apariencia de los botones de Ninox definiendo una función llamada onUpdate en el desencadenador «Mostrar solo si». Esta función debe devolver un objeto que describa los elementos visuales que hay que modificar, y el script debe terminar con un booleano que indique si el botón debe mostrarse.

Con este método puede:

  • Cambiar el texto del botón.
  • Actualizar el tooltip (o título) del botón.
  • Cambiar el color del botón mediante clases predefinidas.
  • Mostrar un badge para destacar una información importante.

Resumen de las propiedades JSON

PropiedadDescripciónEjemplo / Uso
captionEl texto que se muestra en el botón."Send" / "Cancel"
tooltip o titleEl texto que aparece al pasar el ratón, como tooltip."Click to send"
buttonColorLa clase de color que se aplica al botón (por ejemplo, "blue", "red", "grey")."blue"
badgeUn objeto que describe el badge que se muestra en el botón.Véanse los detalles más abajo
badge.captionEl texto, el número o el símbolo que se muestra en el badge."3" or "!"
badge.colorEl color del badge (predefinido o personalizado)."red" or "#4970ff"

Funcionamiento general

  1. Definir la función onUpdate
    En el código del desencadenador «Mostrar solo si» del botón, declare una función llamada onUpdate. Esta función devuelve un objeto (en formato JSON) que describe los elementos que hay que modificar.
  2. Devolver un booleano para la visibilidad
    El desencadenador debe terminar devolviendo un booleano (true o false) para indicar si el botón debe mostrarse.
  3. Ninext aplica las modificaciones
    Cuando se abre o se actualiza el registro, Ninext ejecuta la función onUpdate, lee el objeto devuelto y aplica dinámicamente los cambios de apariencia al botón.

Implementación

Un único bloque de código en el desencadenador «Mostrar solo si»

"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 >= 0

Comentarios:

  • La función onUpdate construye un objeto que permite modificar el texto del botón (con un indicador numérico si Count es positivo), el tooltip, el color del botón y mostrar un badge.
  • El último bloque de código devuelve un booleano que determina si el botón debe mostrarse.

Ejemplo mínimo (solo el 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";
true

Comentarios:

  • Solo se devuelve la propiedad badge, para mostrar un valor si NewItems es mayor que 0.
  • El botón se muestra sin condición.

Puntos importantes

  • Devolución final de un booleano
    Sin devolver true o false al final, el botón no será visible.