Событие кнопки

image.png

Настройка кнопок с помощью Ninext

Ninext позволяет менять внешний вид кнопок Ninox: для этого в триггере «Display only if» объявляется функция onUpdate. Она должна возвращать объект с описанием изменяемых элементов оформления, а сам скрипт должен завершаться логическим значением, указывающим, показывать кнопку или нет.

Так вы можете:

  • изменить надпись на кнопке;
  • изменить всплывающую подсказку (title) кнопки;
  • изменить цвет кнопки, выбрав один из готовых классов;
  • показать значок, привлекающий внимание к важным сведениям.

Краткий обзор свойств JSON

СвойствоОписаниеПример / применение
captionТекст, показанный на кнопке."Send" / "Cancel"
tooltip или titleТекст, показываемый при наведении, в виде подсказки."Click to send"
buttonColorКласс цвета, применяемый к кнопке (например, «blue», «red», «grey»)."blue"
badgeОбъект с описанием значка, показываемого на кнопке.См. подробности ниже
badge.captionТекст, число или символ, показываемый на значке."3" or "!"
badge.colorЦвет значка (по умолчанию или свой)."red" or "#4970ff"

Общий порядок работы

  1. Объявите функцию onUpdate
    В коде триггера «Display only if» кнопки объявите функцию onUpdate. Она возвращает объект (в формате JSON) с описанием изменяемых элементов.
  2. Верните логическое значение видимости
    Триггер должен заканчиваться возвратом логического значения (true или false), указывающего, показывать кнопку или нет.
  3. Ninext применяет изменения
    При открытии или обновлении записи Ninext выполняет функцию onUpdate, читает возвращённый объект и на лету применяет изменения оформления к кнопке.

Реализация

Единый блок кода в триггере «Display 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 >= 0

Пояснения:

  • Функция onUpdate строит объект, позволяющий изменить надпись на кнопке (с числовым указателем, если Count положителен), подсказку, цвет кнопки и показать значок.
  • Последний блок кода возвращает логическое значение, определяющее, показывать кнопку или нет.

Минимальный пример (только значок)

"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

Пояснения:

  • Возвращается только свойство badge, чтобы показать значение, если NewItems больше 0.
  • Кнопка отображается безусловно.

Важные замечания

  • Обязательный логический возврат в конце
    Без возврата true или false в конце кнопка не будет видна.