Skip to main content

Действия

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

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

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
modelresolve filter multi edit datasourceМодель, над которой выполнится действие. Если модель пустая, то действие будет заблокировано.resolve
srcИмя javaScript функцииРеализация действияДля каждого действия свои умолчания. Для <custom> атрибут обязательный.

<open-page>#

Открыть страницу поверх текущей.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
page-idСсылка на страницуСтраница, которая будет открыта поверх текущей
object-idstringИдентификатор объекта
targetapplication, newWindowСценарий действия открытия страницы newWindow - в новой вкладке, application - в текущем приложенииapplication
routeСтрокаURL действияФормируется из идентификаторов страницы, виджета и действия
page-nameСтрокаНаименование страницы
submit-modelresolve filter multi edit datasourceМодель, с которой будет выполняться операция по кнопке "Сохранить".
submit-labelСтрокаНазвание кнопки отправки формы на открываемой страницеСохранить
close-after-submittrue falseЗакрыть окно после успешного выполнения операции объектаtrue
redirect-url-on-submit-successСтрокаПереадресовать на URL после успешного выполнения операции объекта.
redirect-target-on-submit-successself, newWindow, applicationСценарий переадресации после успешного выполнения операции объекта.

Тело

Параметры пути открытия новой страницы params, список переопределений источников данных

Пример

<open-page  page-id="employee"  submit-operation-id="create"  model="filters"  upload="defaults"  target="application">    <params>        <path-param>...</path-param>        <query-param>...</query-param>    </params>    <datasources>        <datasource ... />    </datasources></open-page>

Переопределение источников данных <datasource>#

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор источника данных
query-idСтрокаИдентификатор выборки, на основе которой происходит получение данных
object-idСтрокаИдентификатор объекта
default-values-modedefaults, query, mergeПодстановка значений по умолчанию.
defaults - значения по умолчанию заполняются данными прописанными в полях
query - значения по умолчанию заполняются данными из запроса
merge - значения по умолчанию заполняются путем мержа данных прописанных в полях и полученных из запроса(полученные из запроса в приоритете), id игнорируется
query

Пример

<datasources>    <datasource id="ds1" query-id="other_query" default-values-mode="defaults"/></datasources>

<path-param>, <query-param>#

Тело

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

<show-modal>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
page-idСсылка на страницуСтраница, которая будет открыта поверх текущей
object-idstringИдентификатор объекта
routeСтрокаURL действияФормируется из идентификаторов страницы, виджета и действия
page-nameСтрокаНаименование страницы
modal-sizesm, lgРазмер модального окнаlg
scrollabletrue falseБудет ли модальное окно фиксированного размера, а полоса прокрутки внутри
submit-operation-idСсылка на операцию в объектеНа открываемой странице будут добавлены кнопки "Сохранить" и "Отмена". Кнопка "Сохранить" будет выполнять заданную операцию объекта.
submit-labelСтрокаНазвание кнопки отправки формы на открываемой страницеСохранить
submit-modelresolve filter multi edit datasourceМодель, с которой будет выполняться операция по кнопке "Сохранить".
close-after-submittrue falseЗакрыть окно после успешного выполнения операции объектаtrue
redirect-url-on-submit-successСтрокаПереадресовать на URL после успешного выполнения операции объекта.
unsaved-data-prompt-on-closetrue falseПредупредить о несохраненных данных на форме при закрытии модального окна?true
refresh-datasourcesСписок ссылок на источники данныхИдентификаторы источника данных, который необходимо обновить после успешного выполнения операцииdatasource у button, а если нет, datasource текущего виджета
refresh-on-closetrue falseОбновление виджета после закрытия модального окнаfalse
submit-action-typeinvoke copyДействие при нажатии кнопки "Сохранить"invoke
copy-modelresolve edit filter multi datasourceМодель виджета открываемой страницы, которая будет скопированаresolve
copy-datasourceСссылка на источник данныхИдентификатор источника данных открываемой страницы, данные которого будут копироватьсяГлавный виджет страницы
copy-field-idСтрокаИдентификатор поля виджета открываемой страницы, данные которого будут копироватьсяВся модель
target-modelresolve edit filter multi datasourceМодель виджета текущей страницы, в которую будут скопированы данныеresolve
target-datasourceСссылка на источник данныхИсточник данных текущей страницы, в который будут скопированы данные (по умолчанию текущий)Текущий виджет
target-field-idСтрокаИдентификатор поля виджета текущей страницы, в которое будут скопированы данныеВся модель
copy-modemerge replace addТип слиянияmerge
has-headertrue falseНаличие шапкиtrue
classCSS классКласс модального окна
backdropfalse true staticНаличие фона модального окна и закрытие по клику на фон. false - прозрачный фон, клик по фону не закрывает модальное окно; true - темный фон, клик по фону закрывает модальное окно; static - темный фон, клик по фону не закрывает модальное окно.static
styleCSS свойствоСтиль окна

Тело

Параметры пути открытия новой страницы params, список переопределений источников данных

Пример

<show-modal  page-id="employee"  submit-operation-id="create">     <params>         <path-param>...</path-param>         <query-param>...</query-param>     </params>     <datasources>         <datasource ... />     </datasources></show-modal>

<open-drawer>#

Открыть страницу drawer.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
page-idСсылка на страницуСтраница, которая будет открыта поверх текущей
object-idstringИдентификатор объекта
routeСтрокаURL действияФормируется из идентификаторов страницы, виджета и действия
page-nameСтрокаНаименование страницы
submit-operation-idСсылка на операцию в объектеНа открываемой странице будут добавлены кнопки "Сохранить" и "Отмена". Кнопка "Сохранить" будет выполнять заданную операцию объекта.
submit-labelСтрокаНазвание кнопки отправки формы на открываемой страницеСохранить
submit-modelresolve filter multi edit datasourceМодель, с которой будет выполняться операция по кнопке "Сохранить".
close-after-submittrue falseЗакрыть окно после успешного выполнения операции объектаtrue
close-on-escapetrue falseЗакрыть окно по кнопке Esctrue
redirect-url-on-submit-successСтрокаПереадресовать на URL после успешного выполнения операции объекта.
unsaved-data-prompt-on-closetrue falseПредупредить о несохраненных данных на форме при закрытии модального окна?true
refresh-datasourcesСписок ссылок на источники данныхИдентификаторы источника данных, который необходимо обновить после успешного выполнения операцииdatasource у button, а если нет, datasource текущего виджета
refresh-on-closetrue falseОбновление виджета после закрытия drawerfalse
closabletrue falseЕсть ли крестик для закрытияtrue
backdroptrue falseВключение маски(backdrop)true
widthСтрокаШирина компонента
heightСтрокаВысота компонента
placementleft top right bottomПозиция компонента
levelСтрокаСдвиг элемента или группы элементов при открытии
fixed-footertrue falseФиксирование footer внизу drawer.false
submit-action-typeinvoke copyДействие при нажатии кнопки "Сохранить"invoke
copy-modelresolve edit filter multi datasourceМодель виджета открываемой страницы, которая будет скопированаresolve
copy-datasourceСссылка на источник данныхИдентификатор источника данных открываемой страницы, данные которого будут копироватьсяГлавный виджет страницы
copy-field-idСтрокаИдентификатор поля виджета открываемой страницы, данные которого будут копироватьсяВся модель
target-modelresolve edit filter multi datasourceМодель виджета текущей страницы, в которую будут скопированы данныеresolve
target-datasourceСссылка на источник данныхИсточник данных текущей страницы, в который будут скопированы данные (по умолчанию текущий)Текущий виджет
target-field-idСтрокаИдентификатор поля виджета текущей страницы, в которое будут скопированы данныеВся модель
copy-modemerge replace addТип слиянияmerge

Тело

Параметры пути открытия новой страницы params, список переопределений источников данных

Пример

<open-drawer  page-id="employee"  submit-operation-id="create">        <params>           <path-param>...</path-param>           <query-param>...</query-param>       </params>       <datasources>           <datasource ... />       </datasources></open-drawer>

<a>#

Открыть страницу браузера.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
hrefСтрокаАдрес URL. Возможно использование плейсхолдеров {placeholder}. Подробнее о формировании ссылки
targetself, newWindow, applicationСценарий открытия ссылки: self - в текущей вкладке, newWindow - в новой вкладке, application - в текущем приложении (без обращения к серверу)self

Тело

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

Пример

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

<print>#

Действие печати

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
urlСтрокаАдрес документа для печати

Тело

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

Пример

<print url="/files/:doc_id">      <path-param name="doc_id" value="{doc_id}"/></print>

<refresh>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
datasourceСссылка на источник данныхИсточник данных, на котором выполняется операцияИсточник данных текущего виджета

Пример

<refresh datasource="reports"/>

<invoke>#

Выполнить операцию объекта.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
operation-idСсылка на операцию объектаДействие, которое нужно выполнить
object-idstringИдентификатор объекта
routeСтрокаURL адрес действияФормируется изидентификаторов страницы, виджета и действия
close-on-successtrue falseЗакрыть окно после успешного выполнения действия. Закроется модальное окно, либо откроется предыдущая страница в хлебных крошках.false
refresh-on-successtrue falseНеобходимо ли обновлять данные после успешного выполнения действияtrue
message-on-successtrue falseПоказать сообщение об успешном выполнении действияtrue
message-on-failtrue falseПоказать сообщение о неудачном выполнении действияtrue
message-positionfixed relativeФиксированное или относительное положение сообщения
message-placementtop bottomПоложение сообщения при фиксации
redirect-urlСтрокаURL адрес, на который произойдет переход сразу после успешного выполнения действия. Можно задавать относительный путь и плейсхолдеры, например, redirect-url="../:id"
redirect-targetself, newWindow, applicationСценарий открытия ссылки сразу после успешного выполнения операции (См. target в <a>).self
refresh-datasourcesСписок ссылок на источники данныхИдентификаторы источника данных, который необходимо обновить после успешного выполнения операцииdatasource у button, а если нет, datasource текущего виджета
optimistictrue falseВключение режима optimistic запросов на серверfalse
submit-alltrue falseОтправить всю форму или только те, которые прописаны в form-paramtrue
methodPOST, PUT, DELETE.Вызываемый метод.POST

Тело

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

Пример

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

<close>#

Закрыть страницу.

Атрибуты

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

Пример

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

<copy>#

Копирование данных.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
source-modelresolve edit filter multi datasourceМодель, которая будет скопированаresolve
source-datasourceСссылка на источник данныхИдентификатор источника данных источникаИсточник данных текущего виджета
source-field-idСтрокаИдентификатор копируемого поля источникаВся модель
target-modelresolve edit filter multi datasourceМодель, в которую будут скопированы данныеresolve
target-page-idСтрокаИдентификатор целевой страницыТекущая страница
target-datasourceСссылка на источник данныхИдентификатор целевого источника данных
target-field-idСтрокаИдентификатор поля целевого виджета, в которое будут скопированы данныеВся модель
modemerge replace addТип слияния данныхmerge

Пример

<copy source-field-id="id" target-datasource="table" target-field-id="dictionary.id"/>

<clear>#

Очистить модель.

Атрибуты

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

Пример

<clear model="edit"/>

<perform>#

Настраиваемое действие Redux с произвольными атрибутами.

Пример

<button src="MyCustomButton" ext:prop1="value1">  <perform type="n2o/custom/ACTION" ext:prop2="value2"/></button>

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
typeСтрокаТип действия Redux.

<set-value>#

Установка значения в заданную модель.

Атрибуты

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

Примеры

<set-value model="edit" target-field-id="fullname">  return firstName + lastName;</set-value>
<button label="Сколько время?">  <set-value to="clock">moment().format('hh:mm:ss')</set-value></button><output-text id="clock" label="Время"/>

<submit>#

Отправка значения на сервер при его изменении

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
operation-idСтрокаИдентификатор операции, которая должна вызваться
message-on-successtrue falseПоказать сообщение об успешном выполнении действияfalse
message-on-failtrue falseПоказать сообщение о неудачном выполнении действияfalse
message-positionfixed relativeФиксированное или относительное положение сообщения
message-placementtop bottomПоложение сообщения при фиксации
routeСтрокаURL запроса
refresh-on-successtrue falseНеобходимо ли обновлять виджетfalse
refresh-datasourceСтрокаСсылка на обновляемый источник данных

Пример

<submit operation-id="saveName" route="/saveName/{a}">    <path-param/>    <query-param/>    <header-param/>    <form-param/></submit>

<path-param>#

Параметры URL

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
nameСтрокаНазвание параметра
valueСтрокаЗначение параметра
ref-widget-idСтрокаИдентификатор виджета, по полю которого будет фильтрация
ref-modelresolve edit filter multi datasourceМодель виджета, по полю которого будет фильтрация

Пример

<path-param name="a" value="{id}" ref-widget-id="master" ref-model="filter"/>

<header-param>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
nameСтрокаНазвание параметра
valueСтрокаЗначение параметра
ref-widget-idСтрокаИдентификатор виджета, по полю которого будет фильтрация
ref-modelresolve edit filter multi datasourceМодель виджета, по полю которого будет фильтрация

Пример

<header-param name="b" value="{id}" ref-widget-id="master" ref-model="filter"/>

<form-param>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор параметра
valueСтрокаЗначение параметра
ref-widget-idСтрокаИдентификатор виджета, по полю которого будет фильтрация
ref-modelresolve edit filter multi datasourceМодель виджета, по полю которого будет фильтрация

Пример

<form-param id="c" value="{id}" ref-widget-id="master" ref-model="filter"/>

<alert>#

Действие оповещения.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
titleСтрокаТекст заголовка уведомления
textСтрокаТекст уведомления
styleСтрокаСтиль уведомления
classСтрокаCSS класс уведомления
colorСтрокаЦвет уведомленияsecondary
hrefСтрокаСсылка для перехода при клике по уведомлению
close-buttontrue falseНаличие кнопки закрытия уведомленияtrue
placementСтрокаРасположение уведомленияtop
timeoutСтрокаДлительность показа уведомления3000
timeСтрокаВремя отправки уведомления

Пример

<alert title="title" text="text" style="width:90%" class="css-on-action"               close-button="true" placement="top" color="info"               timeout="5000" time="2022-02-02T12:15:23" href="http://example.org"/>