Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


API виджетов описывает методы настройки структуры и функциональности виджетов:

  • Используйте методы объектов s_widget и s_widgets в клиентских скриптах виджетов для добавления необходимой функциональности.
  • Для создания пользовательских методов используйте s_widget_custom.

    Info

    Эти методы могут быть использованы только на стороне клиента.


Note

s_widget это объект класса SimpleWidget, который становится доступен при инициализации виджета.

s_widgets это объект класса SimpleWidgets, который инициализируется при добавлении виджета на форму или на страницу портала.


SimpleWidget

s_widget


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

Info

Для того чтобы вручную вызвать метод в консоли, передайте ID экземпляра виджета в первом параметре. Например, чтобы вызвать метод:

Code Block
languagejs
s_widget.getFieldValue(key); 

используйте следующий способ его вызова:

Code Block
languagejs
s_widget.getFieldValue(widgetId, key);



s_widget.addTemplate(id, template, script, type)


Этот метод добавляет дочерний шаблон к существующему по его ID с одним из следующих типов: inner, before, after.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
idStringДаНет
templateStringДаНет
scriptString

Нет

Note

Для настройки параметра type этот параметр является обязательным. Если параметр script не используется, используйте (''), как показано в примере ниже.


Нет
typeString (возможные варианты: inner, before, after)Нет

inner 

Tooltip
onlyIcontrue
appendIconinfo-filled
iconColorblue

Если не указано.


Возвращаемое значение:

ТипОписание
VoidДанный метод не возвращает значение.

Пример:

Code Block
languagexml
titleДобавить в поле Шаблон
<div id="steps"></div>


Code Block
languagejs
themeEclipse
titleДобавить в поле Клиентский скрипт
s_widget.addTemplate('steps', '<div class="main">', '', 'inner');

s_widget.getElements()


Данный метод возвращает массив элементов структуры виджета.

Возвращаемое значение:

ТипОписание
Array<elements>Элементы структуры виджета, собранные в массив.

Пример:

Code Block
languagejs
themeEclipse
titles_widget.getElements()
linenumberstrue
s_widget.getElements();

s_widget.getFieldValue(key)


Используйте этот метод для получения значения поля виджета, определенного ключом key

Параметр:

НазваниеТипОбязательныйЗначение по умолчанию
keyStringДаНет

Возвращаемое значение:

ТипОписание
AnyЗначение поля, определённого указанным ключом.

Пример:

Code Block
languagejs
themeEclipse
titles_widget.getFieldValue
linenumberstrue
s_widget.getFieldValue('element');

s_widget.getId()


Данный метод возвращает ID экземпляра виджета.

Возвращаемое значение:

ТипОписание
StringМетод возвращает ID экземпляра виджета.

Пример:

Code Block
languagejs
themeEclipse
titles_widget.getId
linenumberstrue
s_widget.getId();

s_widget.getOptionValue(key)


Используйте данный метод для получения значения value, заданного в опции key.

Параметр:

НазваниеТипОбязательныйЗначение по умолчанию
keyStringДаНет

Возвращаемое значение:

ТипОписание
AnyЗначение опции виджета, определённой ключом.

Пример:

Code Block
languagejs
themeEclipse
titles_widget.getOptionValue
s_widget.getOptionValue('label');

s_widget.removeTemplate(id)


Используйте данный метод, чтобы удалить все дочерние узлы и содержимое указанного элемента. Сам элемент и его атрибуты при этом сохраняются.

Параметр:

НазваниеТипОбязательныйЗначение по умолчанию
idStringДаНет

Возвращаемое значение:

ТипОписание
VoidДанный метод не возвращает значение.

Пример:

Code Block
languagexml
themeEclipse
titleДобавьте в поле Шаблон
linenumberstrue
<div id="element1">
  Remove me
</div>
<button buttonType="approve" event-click="window.s_widget_custom.remove();">
  Click me
</button>


Code Block
languagecss
themeEclipse
titleДобавьте в поле CSS
linenumberstrue
#element1 {
  background-color: yellow;
  height: 20px;
}


Code Block
languagejs
themeEclipse
titleДобавьте в поле Клиентский скрипт
linenumberstrue
;
(() => {
    window.s_widget_custom = window.s_widget_custom || {};
    window.s_widget_custom.remove = function () {
        s_widget.removeTemplate('element1');
    } 
})();

s_widget.setFieldValue(key, value)


Используйте этот метод, чтобы задать значение (value) для ключа (key).

Info

Если задаваемое значение равно 'null', например, s_widget.setFieldValue('subject', null), заданное поле будет очищено. 

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
keyStringДаНет
valueAnyДаНет

Возвращаемое значение:

ТипОписание
VoidДанный метод не возвращает значение.

Пример:

Code Block
languagejs
themeEclipse
titles_widget.setFieldValue
linenumberstrue
;
(async () => {
    const tableName = s_form.getTableName();
    const recordId = s_form.getUniqueValue();
    const serviceId = s_form.getValue('service');
    const serviceDisplayValue = s_form.getDisplayValue('service');

    s_widget.setFieldValue('table_name', tableName);
    s_widget.setFieldValue('record_id', recordId);
    s_widget.setFieldValue('service', { database_value: serviceId, display_value: serviceDisplayValue });
    await s_widget.serverUpdate();
})();


s_widget.serverUpdate()


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

Возвращаемое значение:

ТипОписание
ObjectМетод возвращает промис, содержащий ответ сервера. 

Пример:

Code Block
languagejs
themeEclipse
titles_widget.serverUpdate
linenumberstrue
;
(async () => {
    const tableName = s_form.getTableName();
    const recordId = s_form.getUniqueValue();
    s_widget.setFieldValue('table_name', tableName);
    s_widget.setFieldValue('record_id', recordId);
    const response = await s_widget.serverUpdate();
    console.log(response.getData().data);
})();

s_widget.setOptionValue(key, value)


Используйте этот метод, чтобы задать значение (value) для ключа (key) опций виджета.

НазваниеТипОбязательныйЗначение по умолчанию
keyStringДаНет
valueAnyДаНет

Возвращаемое значение:

ТипОписание
VoidДанный метод не возвращает значение.

Пример:

Code Block
languagejs
themeEclipse
titles_widget.setOptionValue
s_widget.setOptionValue('label', 'название');

s_widget.showData()


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

Возвращаемое значение:

ТипОписание
Void

Данный метод не возвращает значение.

Пример:

Code Block
languagejs
themeEclipse
titles_widget.showData
s_widget.showData();

SimpleWidgets

s_widgets


Вызывайте метод методы у объекта s_widgets в своих скриптах при добавлении виджета на форму или страницу для взаимодействия с виджетом.

s_widgets.getFieldValue(widgetInstanceID, key)


Данный метод возвращает значение из данных виджета для ключа (key) и ID экземпляра виджета (widget instance ID).

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
widgetInstanceIDString (значение sys_id)ДаНет
keyStringДаНет

Возвращаемое значение:

ТипОписание
AnyВозвращает значение объекта.

Пример:

Code Block
languagejs
themeEclipse
titles_widgets.getFieldValue
s_widgets.getFieldValue('157555401214600424', 'name');

s_widgets.getForm()


Данный метод возвращает объект формы, размещенный при помощи тэга <form> или <remform>.

Параметр:

НазваниеТипОбязательныйЗначение по умолчанию
nameStringДаНет

Возвращаемое значение:

ТипОписание
ObjectМетод возвращает объект SimpleForm.

Пример:

Code Block
languagejs
themeEclipse
title s_widgets.getForm
linenumberstrue
const builtInForm = s_widgets.getForm('custom');
await builtInForm.save();

s_widgets.getWidgets()


Этот метод возвращает список ID всех экземпляров виджетов на странице.

Возвращаемое значение:

ТипОписание
ArrayСписок ID всех экземпляров виджетов на странице 

Пример:

Code Block
languagejs
themeEclipse
titles_widgets.getWidgets
s_widgets.getWidgets();

s_widgets.setFieldValue(widgetInstanceID, key, value)


Используйте данный метод, чтобы задать значение (value) для ключа (key) в данных виджетаи ID экземпляра виджета (widget instance ID).

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
widgetInstanceIDString (значение sys_id)ДаНет
keyStringДаНет
valueAnyДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

Пример:

Code Block
languagejs
themeEclipse
titles_widgets.setFieldValue
s_widgets.setFieldValue('157555401214600424', 'name', 'Александр');


Table of Contents
maxLevel3
classfixedPosition