Skip to main content

Действия

Действия, меняющие состояние React компонентов и отправляющие запросы на сервер.

Библиотека компонентов

http://n2oapp.net/framework/config/schema/action-2.0

Базовые свойства

Атрибуты

НаименованиеТипОписание
srcСтрокаТип Redux действия

Простые действия

<a>

Действие открытия ссылки

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
hrefСтрокаАдрес URL. Возможно использование плейсхолдеров.
Подробнее о формировании ссылки
!
datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взято значение для плейсхолдеров в hrefИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель, из которой будет взято значение для плейсхолдеров в hrefМодель родительского компонента
targetnewWindow self applicationСценарий открытия ссылки:
newWindow - в новой вкладке (относительный путь добавляется после хоста)
self - в текущей вкладке (относительный путь добавляется после хоста)
application - в текущей вкладке (относительный путь добавляется после #)
self

Тело

<path-param> - Параметр пути
<query-param> - Параметр запроса

Пример

<a href="https://google.com" target="newWindow"/>

<action>

Настраиваемое действие

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
typeСтрокаТип Redux действия!
close-on-successtrue falseЗакрыть окно\страницу после успешного выполнения операции. Закроется окно, либо откроется предыдущая страница в хлебных крошкахfalse
double-close-on-successtrue falseЗакрыть два окна\страницы после успешного выполнения операции. Закроются два окна, либо откроется страница на два уровня назад в хлебных крошкахfalse
close-on-failtrue falseЗакрыть окно\страницу после неудачного выполнения операции. Закроется окно, либо откроется предыдущая страница в хлебных крошкахfalse
redirect-urlСтрокаURL, на который произойдет переход после успешного выполнения операции
redirect-targetnewWindow self applicationСценарий открытия ссылки:
newWindow - в новой вкладке (относительный путь добавляется после хоста)
self - в текущей вкладке (относительный путь добавляется после хоста)
application - в текущей вкладке (относительный путь добавляется после #)
self
refresh-on-successtrue falseОбновить данные после успешного выполнения операцииtrue
refresh-datasourcesСписок ссылок на источники данныхСписок идентификаторов источников данных (через запятую), которые необходимо обновить после успешного выполнения действияИдентификатор источника данных родительского компонента

Тело

<payload> - Полезная нагрузка

Пример

<action type="n2o/CUSTOM_ACTION"
redirect-target="application" redirect-url="/main"
close-on-success="true" refresh-datasources="ds1,ds2"/>

<payload>

Полезная нагрузка настраиваемого действия

Атрибуты

Может содержать любые атрибуты. Возможно использование плейсхолдеров

Пример

<payload docId="{s3guid}" formId="{formId}"/>

<alert>

Действие уведомления

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
titleСтрокаТекст заголовка. Возможно использование плейсхолдеров
textСтрокаТекст сообщения. Возможно использование плейсхолдеров
colorprimary secondary success danger warning info light darkЦвет уведомления. Возможно использование плейсхолдеровsecondary
placementtop bottom topLeft topRight bottomLeft bottomRightРасположение уведомленияtop
hrefСтрокаURL перехода при клике по уведомлению
timeСтрокаВремя отправки уведомления
timeoutСтрокаДлительность показа уведомления (в мс)3000
close-buttontrue falseНаличие кнопки закрытияtrue
datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взято значение для плейсхолдеров атрибутовИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель, из которой будет взято значение для плейсхолдеров атрибутовМодель родительского компонента
classСтрокаCSS класс уведомления
styleСтрокаCSS стиль уведомления

Настройки

#Цвет уведомления
n2o.api.action.alert.color = secondary
#Расположение уведомления
n2o.api.action.alert.placement = top
#Наличие кнопки закрытия уведомления
n2o.api.action.alert.close_button = true
#Длительность показа различных видов сообщений (в мс) в зависимости от цвета\важности
n2o.api.message.primary.timeout = 3000
n2o.api.message.secondary.timeout = 3000
n2o.api.message.success.timeout = 3000
n2o.api.message.danger.timeout = 8000
n2o.api.message.warning.timeout = 8000
n2o.api.message.info.timeout = 8000
n2o.api.message.light.timeout = 3000
n2o.api.message.dark.timeout = 3000

Пример

<alert title="title" text="{text}" placement="top" color="info"
timeout="5000" time="2022-02-02T12:15:23" datasource="ds1"/>

<clear>

Действие очистки модели

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
datasourceСсылка на источник данныхИдентификатор источника данных, чья модель будет очищенаИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceСписок моделей (через запятую), которые будут очищеныМодель родительского компонента
close-on-successtrue falseЗакрыть окно после успешной очистки моделиfalse

Пример

<clear model="edit"/>

<close>

Действие закрытия страницы\окна

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
unsaved-data-prompttrue falseПоказать предупреждение о наличии несохраненных данныхtrue
refreshtrue falseОбновить источник данных родительской страницы при закрытииfalse

Настройки

#Обновить источник данных родительской страницы при закрытии
n2o.api.action.close.refresh_on_close = false

Пример

<close unsaved-data-prompt="false"/>

<confirm>

Действие открытия окна подтверждения

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
titleStringЗаголовок окна подтверждения. Возможно использование плейсхолдеров
textStringТекст подтверждения. Возможно использование плейсхолдеров
typemodal popoverТип окна подтвержденияmodal
close-buttontrue falseНаличие закрывающего крестикаfalse
classСтрокаCSS класс окна подтверждения
styleСтрокаCSS стиль окна подтверждения

Настройки

#Тип окна предупреждения
n2o.api.action.confirm.mode = modal
#Наличие закрывающего крестика
n2o.api.action.confirm.close_button = false

Тело

<ok> - Кнопка подтверждения
<cancel> - Кнопка отмены

<ok> <cancel>

Атрибуты

НаименованиеТипОписание
labelСтрокаЗаголовок кнопки
colorprimary secondary success danger warning info light dark linkЦвет кнопки
iconСтрокаИконка кнопки
classСтрокаCSS класс кнопки
styleСтрокаCSS стиль кнопки

Настройки

#Цвет кнопки подтверждения
n2o.api.action.confirm.ok_color = primary
#Цвет кнопки отмены
n2o.api.action.confirm.cancel_color = secondary

Пример

<confirm title="Подтверждение" text="Вы уверены?">
<ok label="Да"/>
<cancel label="Нет"/>
</confirm>

<copy>

Действие копирования данных

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
source-datasourceСсылка на источник данныхИдентификатор источника данных для копированияИдентификатор источника данных родительского компонента
source-modelresolve edit filter multi datasourceМодель, которая будет скопированаresolve
source-field-idСтрокаИдентификатор копируемого поля источникаВся модель
target-datasourceСсылка на источник данныхИдентификатор источника данных, в который производится копированиеЗначение source-datasource
target-modelresolve edit filter multi datasourceМодель, в которую производится копированиеresolve
target-field-idСтрокаИдентификатор поля, в которое производится копированиеВся модель
modemerge replace addТип слияния данных:
merge - за основу берется модель target, значения из source копируются с заменой
replace - за основу берется модель source
add - используется для массивов. За основу берется массив target, к нему добавляются все записи из source массива
merge
close-on-successtrue falseЗакрыть окно после успешного копирования данныхfalse
validatetrue falseСрабатывание валидации полей при выполнении действияtrue

Настройки

# Закрыть окно после успешного копирования данных
n2o.api.action.copy.close_on_success = false
# Срабатывание валидации полей при выполнении действия
n2o.api.action.copy.validate = true

Пример

<copy source-field-id="id"
target-datasource="table"
target-field-id="dictionary.id"
close-on-success="false"/>

<edit-list>

Действие редактирования записи списка без обращения к серверу

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
operationcreate createMany update delete deleteManyТип операции!
primary-keyСтрокаПоле, по которому будет искаться запись при изменении/удаленииid
item-datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взята записьИдентификатор источника данных родительского компонента
item-modelresolve edit filter multi datasourceМодель, из которой будет взята записьМодель родительского компонента
item-field-idСтрокаПоле, из которого будет взята записьВся модель
datasourceСсылка на источник данныхИдентификатор источника данных списка, который будет обновленЗначение item-datasource
modelresolve edit filter multi datasourceМодель данных списка, которая будет обновленаЗначение item-model
list-field-idСтрокаПоле списка, которое будет обновленоВся модель

Настройки

#Поле, по которому будет искаться запись при изменении/удалении
n2o.api.action.edit_list.primary_key = id

Пример

<edit-list operation="update" item-datasource="docs" item-model="resolve"/>

<invoke>

Действие выполнения операции объекта

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
operation-idСсылка на операцию объектаИдентификатор операции, которая будет выполнена!
object-idСсылка на объектИдентификатор объекта, содержащий выполняемую операцию
routeСтрокаURL адрес операцииФормируется из идентификатора действия
methodPOST PUT DELETEВыполняемый HTTP методPOST
submit-alltrue falseОтправить всю форму или только те поля, которые прописаны в form-paramtrue
optimistictrue falseВключение режима optimistic запросов на серверfalse
close-on-successtrue falseЗакрыть окно\страницу после успешного выполнения операции. Закроется окно, либо откроется предыдущая страница в хлебных крошкахfalse
double-close-on-successtrue falseЗакрыть два окна\страницы после успешного выполнения операции. Закроются два окна, либо откроется страница на два уровня назад в хлебных крошкахfalse
close-on-failtrue falseЗакрыть окно\страницу после неудачного выполнения операции. Закроется окно, либо откроется предыдущая страница в хлебных крошкахfalse
clear-on-successtrue falseОчистить источник данных после успешного выполнения операцииfalse
message-on-successtrue falseПоказать сообщение после успешного выполнения операцииtrue
message-on-failtrue falseПоказать сообщение после неудачного выполнения операцииtrue
message-positionfixed relativeПоложение сообщения:
fixed - фиксированное (поверх страницы)
relative - относительное (над виджетом)
fixed
message-placementtop bottom topLeft topRight bottomLeft bottomRightПоложение сообщения при фиксацииtop
use-fail-outtrue falseИспользование параметров <fail-out/> после неудачного выполнения операцииtrue
redirect-urlСтрокаURL, на который произойдет переход после успешного выполнения операции
redirect-targetnewWindow self applicationСценарий открытия ссылки:
newWindow - в новой вкладке (относительный путь добавляется после хоста)
self - в текущей вкладке (относительный путь добавляется после хоста)
application - в текущей вкладке (относительный путь добавляется после #)
self
refresh-on-successtrue falseОбновить данные после успешного выполнения операцииtrue
refresh-datasourcesСписок ссылок на источники данныхСписок идентификаторов источников данных (через запятую), которые необходимо обновить после успешного выполнения действияИдентификатор источника данных родительского компонента

Настройки

#Выполняемый HTTP метод
n2o.api.action.invoke.method = POST
#Включение режима optimistic запросов на сервер
n2o.api.action.invoke.optimistic = false

Тело

<path-param> - Параметр пути
<form-param> - Параметр запроса
<header-param> - Параметр заголовка запроса

Пример

<invoke operation-id="update" model="edit"
confirm="false" close-on-success="true" method="POST">
<path-param name="..." value="..."/>
<form-param id="..." value="..."/>
<header-param name="..." value="..."/>
</invoke>

<on-fail>

Действие, выполняемое в случае операции, завершившейся ошибкой

Тело

Список действий выполняемых в случае операции, завершившейся ошибкой

Пример

<button label="Сохранить">
<invoke operation-id="create"/>
...
<alert text="Данные сохранены" color="success"/>
<on-fail>
<alert text="Сохранение завершилось ошибкой" color="danger"/>
<close/>
</on-fail>
</button>

<print>

Действие печати документа

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
urlСтрокаАдрес документа для печати. Возможно использование плейсхолдеров!
typetext pdf imageТип документа для печатиpdf
keep-indenttrue falseСохранение отступов в документе. Актуально для типа textfalse
document-titleСтрокаЗаголовок документа
loadertrue falseПоказывать модальное окно с лоадером при загрузкеfalse
loader-textСтрокаТекст внутри модального окна с лоадером
base64true falseПечатать из base64false

Настройки

#Тип документа для печати
n2o.api.action.print.document_type = pdf
#Сохранение отступов в документе
n2o.api.action.print.keep_indent = false
#Показывать модальное окно с лоадером при загрузке
n2o.api.action.print.loader = false
#Печатать из base64
n2o.api.action.print.base64 = false

Тело

<path-param> - Параметр пути
<query-param> - Параметр запроса

Пример

<print url="/files/document.pdf" document-title="Заявление"/>

<refresh>

Действие обновления источника данных

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
datasourceСсылка на источник данныхИдентификатор источника данныхИдентификатор источника данных родительского компонента

Пример

<refresh datasource="reports"/>

<set-value>

Действие установки значения в модель

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
source-datasourceСсылка на источник данныхИдентификатор источника данных, из которого берется значениеИдентификатор источника данных родительского компонента
source-modelresolve edit filter multi datasourceМодель, из которой берется значениеМодель родительского компонента
target-datasourceСсылка на источник данныхИдентификатор источника данных, в который будет записано значениеИдентификатор источника данных родительского компонента
target-modelresolve edit filter multi datasourceМодель, в которую будет записано значениеМодель родительского компонента
toСтрокаПоле, в которое будет записано значениеВся модель
merge-modemerge replace addТип слияния данных:
merge - за основу берется модель target, значения из source копируются с заменой
replace - за основу берется модель source
add - используется для массивов. За основу берется массив target, к нему добавляются все записи из source массива
replace
validatetrue falseСрабатывание валидации полей при выполнении действияtrue

Настройки

# Срабатывание валидации полей при выполнении действия
n2o.api.action.set_value.validate = true

**Тело**

JS выражение

**Примеры**

```xml
<set-value target-datasource="users" target-model="resolve" to="fullname">
return firstName + ' ' + lastName;
</set-value>
<set-value to="clock">
moment().format('hh:mm:ss')
</set-value>

<submit>

Действие сохранения источника данных

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
datasourceСсылка на источник данныхИдентификатор источника данныхИдентификатор источника данных родительского компонента

Пример

<submit datasource="ds"/>

Действия по условию

<switch>

Оператор switch

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
value-field-idСтрокаИдентификатор поля, значение которого будет сравниваться с value в case!
datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взято значениеИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель источника данных, из которой будет взято значениеМодель родительского компонента

Тело

<case> - Действие по условию оператора switch
<default> - Действие по умолчанию оператора switch

Пример

<switch value-field-id="code">
<case value="A">
<open-page page-id="test"/>
</case>
<case value="B">
<invoke operation-id="create"/>
<invoke operation-id="save"/>
</case>
<default>
<close/>
</default>
</switch>

<if> <else-if> <else>

<if>

Условный оператор if

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
testСтрокаУсловие для выполнения действия оператора!
datasourceСсылка на источник данныхИдентификатор источника данных, из которого берется значения для testИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель источника данных, из которой берется значения для testМодель родительского компонента

Тело

Действия для выполнения при срабатывании условия

<else>

Условный оператор else

Тело

Действия для выполнения при срабатывании условия

<else-if>

Условный оператор else-if

Атрибуты

НаименованиеТипОписаниеОбязательность
testСтрокаУсловие для выполнения действия оператора!

Тело

Действия для выполнения при срабатывании условия

Пример

<button label="Сохранить с условием">
<if test="code == 'A' &amp;&amp; type == 1">
<invoke operation-id="save"/>
</if>
<else-if test="code == 'A' &amp;&amp; type == 2">
<invoke operation-id="update"/>
<show-modal page-id="card"/>
</else-if>
<else>
<alert text="Не выполнены условия"/>
</else>
</button>

Действия открытия страниц

Базовые свойства

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
page-idСсылка на страницуИдентификатор открываемой страницы!
page-nameСтрокаИмя открываемой страницы
routeСтрокаURL, по которому будет открыта страницаФормируется на основе идентификатора действия
targetapplication newWindowСценарий действия открытия страницы:
newWindow - в новой вкладке
application - в текущей вкладке
application
refresh-on-closetrue falseОбновить данные после закрытия модального окнаfalse
refresh-datasourcesСписок ссылок на источники данныхСписок идентификаторов источников данных, которые будут обновленыИдентификатор источника данных родительского компонента
unsaved-data-prompt-on-closetrue falseПредупредить о несохраненных данных на форме при закрытии страницыfalse

Настройки

#Предупредить о несохраненных данных на форме при закрытии страницы
n2o.api.action.unsaved_data_prompt = false

<open-page>

Действие открытия страницы

Тело

<params> - Список параметров пути и параметров запроса
<datasources> - Список переопределений источников данных
<breadcrumbs> - Список переопределений хлебных крошек
<toolbars> - Список переопределений меню управляющих кнопок
<actions> - Список переопределений действий страницы

Пример

<open-page
page-id="employee"
route="/open">
<params>
<path-param>...</path-param>
<query-param>...</query-param>
</params>
<datasources>...</datasources>
<breadcrumbs>...</breadcrumbs>
<toolbars>...</toolbars>
<actions>...</actions>
</open-page>

<show-modal>

Действие открытия модального окна

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
modal-sizesm md lg xlРазмер модального окнаlg
backdroptrue false staticНаличие фона модального окна и закрытие по клику на фон:
true - темный фон, клик по фону закрывает модальное окно
false - прозрачный фон, клик по фону не закрывает модальное окно
static - темный фон, клик по фону не закрывает модальное окно
static
scrollabletrue falseФиксирование размера модального окна с полосой прокрутки внутриfalse
has-headertrue falseНаличие шапкиtrue
classСтрокаCSS класс страницы
styleСтрокаСSS стиль страницы

Настройки

#Размер модального окна
n2o.api.action.show_modal.size = lg
#Фиксирование размера модального окна с полосой прокрутки внутри
n2o.api.action.show_modal.scrollable = false
#Наличие шапки
n2o.api.action.show_modal.has_header = true
#Наличие фона модального окна и закрытие по клику на фон
n2o.api.action.show_modal.backdrop = static

Тело

<params> - Список параметров пути и параметров запроса
<datasources> - Список переопределений источников данных
<breadcrumbs> - Список переопределений хлебных крошек
<toolbars> - Список переопределений меню управляющих кнопок
<actions> - Список переопределений действий страницы

Пример

<show-modal
page-id="employee">
<params>
<path-param>...</path-param>
<query-param>...</query-param>
</params>
<datasources>...</datasources>
<breadcrumbs>...</breadcrumbs>
<toolbars>...</toolbars>
<actions>...</actions>
</show-modal>

<open-drawer>

Действие открытия drawer окна

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
widthСтрокаШирина окна. Доступные единицы измерения: px, em, rem, %. При указании числа оно будет приведено к px400
heightСтрокаВысота окна. Доступные единицы измерения: px, em, rem, %. При указании числа оно будет приведено к px
placementleft top right bottomПозиция окнаright
closabletrue falseНаличие крестика для закрытия drawer окнаtrue
backdroptrue falseНаличие фонаtrue
close-on-escapetrue falseЗакрыть окно при нажатии на Esctrue
close-on-backdroptrue falseЗакрыть окно по клику на фонtrue
fixed-footertrue falseФиксирование подвалаfalse

Настройки

#Ширина окна
n2o.api.action.open_drawer.width = 400
#Позиция окна
n2o.api.action.open_drawer.placement = right
#Наличие крестика для закрытия drawer окна
n2o.api.action.open_drawer.closable = true
#Наличие фона
n2o.api.action.open_drawer.backdrop = true
#Закрыть окно при нажатии на Esc
n2o.api.action.open_drawer.close_on_escape = true
#Закрыть окно по клику на фон
n2o.api.action.open_drawer.close_on_backdrop = true
#Фиксирование подвала (footer)
n2o.api.action.open_drawer.fixed_footer = false

Тело

<params> - Список параметров пути и параметров запроса
<datasources> - Список переопределений источников данных
<breadcrumbs> - Список переопределений хлебных крошек
<toolbars> - Список переопределений меню управляющих кнопок
<actions> - Список переопределений действий страницы

Пример

<open-drawer
page-id="employee">
<params>
<path-param>...</path-param>
<query-param>...</query-param>
</params>
<datasources>...</datasources>
<breadcrumbs>...</breadcrumbs>
<toolbars>...</toolbars>
<actions>...</actions>
</open-drawer>

Параметры запроса

<path-param>

Параметр пути

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
nameСтрокаИмя параметра!
valueСтрокаЗначение параметра
datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взято значениеИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель, из которой будет взято значениеМодель родительского компонента

Пример

<path-param name="person_id" value="{id}" datasource="master" model="filter"/>

<query-param>

Параметр запроса

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
nameСтрокаИмя параметра!
valueСтрокаЗначение параметра
datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взято значениеИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель, из которой будет взято значениеМодель родительского компонента

Пример

<query-param name="person_id" value="{id}" datasource="master" model="filter"/>

<header-param>

Параметр заголовка запроса

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
nameСтрокаИмя параметра!
valueСтрокаЗначение параметра
datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взято значениеИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель, из которой будет взято значениеМодель родительского компонента

Пример

<header-param name="person-id" value="{id}" datasource="master" model="filter"/>

<form-param>

Параметр тела запроса

Атрибуты

НаименованиеТипОписаниеЗначение по умолчаниюОбязательность
idСтрокаИдентификатор параметра!
valueСтрокаЗначение параметра
datasourceСсылка на источник данныхИдентификатор источника данных, из которого будет взято значениеИдентификатор источника данных родительского компонента
modelresolve edit filter multi datasourceМодель, из которой будет взято значениеМодель родительского компонента

Пример

<form-param id="personId" value="{id}" datasource="master" model="filter"/>