Hierarchy

  • Widget

Properties

Readonly filePath

filePath: HtmlString

Путь к файлам виджета.

Пример использования в виджете Код:

<img src="<%= UI.widget.filePath %>/filename.png" />

Methods

contextRow

  • Отобразить строку с полем контекста (название и значение).

    Рассмотрим, как можно применить это в виджете Код. Пример подсчёта суммы на основании цены и количества и её отображения только в том случае, если нужное поле не остаётся пустым:

    <%
    Scripts.calcTotal = function () {
        Context.data.total = Context.data.price && Context.data.count ? Context.data.price.multiply(Context.data.count) : undefined;
        Scripts.totalNode.style.display = Context.data.total ? '' : 'none';
    }
    Scripts.onTotalRender = function (node) {
        Scripts.totalNode = node;
        node.style.display = 'none';
    }
    %>
    <%= UI.widget.contextRow('__name', { required: true }) %>
    <%= UI.widget.contextRow('price', { required: true, onChange: Scripts.calcTotal }) %>
    <%= UI.widget.contextRow('count', { required: true, onChange: Scripts.calcTotal }) %>
    <%= UI.widget.contextRow('total', {
        name: 'ИТОГО',
        tooltip: 'Сумма подсчитана автоматически',
        readonly: true,
        onRender: Scripts.onTotalRender,
    }) %>
    

    Parameters

    • fieldCode: string

      Код поля.

    • Optional params: WidgetContextRowParams

      Параметры отображения поля.

    Returns HtmlString

contextValue

  • Отобразить строку со значением поля контекста.

    Пример использования в виджете Код:

    <%= UI.widget.contextValue('__name', {required: true}) %>
    

    Parameters

    • fieldCode: string

      Код поля.

    • Optional params: WidgetContextValueParams

      Параметры отображения поля.

    Returns HtmlString

groupbox

  • Отобразить виджет Панель с заголовком.

    Пример использования в виджете Код:

    <%= UI.widget.groupbox({title: 'Заголовок'}, panelContent) %>
    
    <% $template panelContent %>
        <div> Здесь отобразим содержимое панели </div>
    <% $endtemplate %>
    

    Parameters

    Returns HtmlString

popover

  • Отобразить виджет Выпадающее окно.

    Представляет собой выпадающее окно с произвольным содержимым, открывающееся после клика по элементу для открывания.

    Пример использования в виджете Код:

    <% $template panelContent %>
        <p> Здесь отобразим содержимое выпадающего окна </p>
        <%= UI.widget.contextRow('__name', { name: 'Название' }) %>
    <% $endtemplate %>
    
    <% $template popoverOpener %>
        <button type="button">Открыть</button>
    <% $endtemplate %>
    
    <%= UI.widget.popover(
        popoverOpener,
        {
             type: 'widgets',
             size: 'md',
             position: 'bottom',
        },
        panelContent
    ) %>
    

    Parameters

    • opener: HtmlContent

      Элемент для открывания выпадающего окна. Может содержать HTML-контент или другие виджеты.

    • params: WidgetPopoverParams

      Параметры отображения.

    • Optional content: HtmlContent

      Содержимое выпадающего окна.

    Returns HtmlString

popoverMenu

  • Отобразить виджет Выпадающее меню.

    Представляет собой выпадающее многоуровневое меню, открывающееся после клика по элементу для открывания. Пункты меню описываются массивом в свойстве items параметров отображения.

    Пример использования в виджете Код:

    <% $template popoverMenuOpener %>
        <button type="button">Открыть меню</button>
    <% $endtemplate %>
    
    <%= UI.widget.popoverMenu(
        popoverMenuOpener,
        {
             position: 'right',
             items: [
                 {
                     label: "Меню 1",
                     click: function () {
                         Scripts.onClickMenuItem('Меню 1');
                     },
                 },
                 {
                     label: "Меню 2",
                     click: function () {
                         Scripts.onClickMenuItem('Меню 2');
                     },
                 },
                 {
                     label: "Раздел 1",
                     getItems: function () {
                         return [
                             {
                                 label: "Меню второго уровня",
                                 click: function () {
                                     ViewContext.data.test = 'Дочерний элемент 1';
                                 }
                             },
                         ]
                     },
                 },
             ],
        }
    ) %>
    

    Parameters

    • opener: HtmlContent

      Элемент для открывания выпадающего меню. Может содержать HTML-контент или другие виджеты.

    • params: WidgetPopoverParams

      Параметры отображения.

    Returns HtmlString

render

  • Рендер виджета по его коду.

    Пример использования в виджете Код:

    <%= UI.widget.render('@custom_widget_1', {comment: "Некоторый текст комментария"}) %>
    

    Parameters

    • code: string

      Код виджета.

    • Optional params: Record<string, any> & WidgetParams

      Параметры, передаваемые виджету (объект, где ключи соответсвуют кодам свойств виджета).

    • Optional content: HtmlContent

      Контент, который будет рендериться внутри виджета.

    Returns HtmlString

tabset

  • Отобразить виджет Вкладки.

    Пример использования в виджете Код:

    <%= UI.widget.tabset({}, [{title: 'Вкладка 1', content: firstTabContent}, {title: 'Вкладка 2', content: secondTabContent}]) %>
    
    <% $template firstTabContent %>
        <div> Здесь отобразим содержимое первой вкладки </div>
    <% $endtemplate %>
    
    <% $template secondTabContent %>
        <div> Здесь отобразим содержимое второй вкладки </div>
    <% $endtemplate %>
    

    Parameters

    Returns HtmlString

viewContextRow

  • Отобразить строку с полем View-контекста (название и значение).

    Рассмотрим, как можно применить это в виджете Код. Пример подсчёта суммы на основании цены и количества и её отображения только в том случае, если нужное поле не остаётся пустым.

    <%
    Scripts.calcTotal = function () {
        ViewContext.data.total = ViewContext.data.price && ViewContext.data.count
        ? ViewContext.data.price.multiply(ViewContext.data.count)
        : undefined;
        Scripts.totalNode.style.display = Context.data.total ? '' : 'none';
    }
    Scripts.onTotalRender = function (node) {
        Scripts.totalNode = node;
        node.style.display = 'none';
    }
    %>
    <%= UI.widget.viewContextRow('__name', { required: true }) %>
    <%= UI.widget.viewContextRow('price', { required: true, onChange: Scripts.calcTotal }) %>
    <%= UI.widget.viewContextRow('count', { required: true, onChange: Scripts.calcTotal }) %>
    <%= UI.widget.viewContextRow('total', {
        name: 'ИТОГО',
        tooltip: 'Сумма подсчитана автоматически',
        readonly: true,
        onRender: Scripts.onTotalRender,
    }) %>
    

    Parameters

    • fieldCode: string

      Код поля.

    • Optional params: WidgetContextRowParams

      Параметры отображения поля.

    Returns HtmlString

viewContextValue

  • Отобразить строку со значением поля View-контекста.

    Пример использования в виджете Код:

    <%= UI.widget.viewContextValue('__name', {required: true}) %>
    

    Parameters

    • fieldCode: string

      Код поля.

    • Optional params: WidgetContextValueParams

      Параметры отображения поля.

    Returns HtmlString