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Идентификатор объекта
routeСтрокаURL действияФормируется из идентификаторов страницы, виджета и действия
uploadquery, defaults, copy, resolveИсточник данных мастер виджета при открытии страницыquery
page-nameСтрокаНаименование страницы
master-field-idСсылка на полеПоле в модели текущего виджета
detail-field-idСсылка на полеПоле в фильтрах мастер виджета на открываемой странице
submit-operation-idСсылка на операцию в объектеНа открываемой странице будут добавлены кнопки "Сохранить" и "Отмена". Кнопка "Сохранить" будет выполнять заданную операцию объекта.
submit-modelresolve filter multi edit datasourceМодель, с которой будет выполняться операция по кнопке "Сохранить".
submit-labelСтрокаНазвание кнопки отправки формы на открываемой страницеСохранить
focus-after-submittrue falseПоставить фокус в текущем виджете на запись, которую вернёт операция объекта
close-after-submittrue falseЗакрыть окно после успешного выполнения операции объектаtrue
redirect-url-on-submit-successСтрокаПереадресовать на URL после успешного выполнения операции объекта.
redirect-target-on-submit-successself, newWindow, applicationСценарий переадресации после успешного выполнения операции объекта.

Пример

<open-page  page-id="employee"  submit-operation-id="create"  model="filters"  upload="defaults">  ...</open-page>

<pre-filters>#

Тело

Предустановленные фильтры

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

Тело

Параметры действия

<show-modal>#

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

Атрибуты

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

Пример

<show-modal  page-id="employee"  submit-operation-id="create"  upload="defaults">  ...</show-modal>

<pre-filters>#

Тело

Предустановленные фильтры

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

Тело

Параметры действия

<open-drawer>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
page-idСсылка на страницуСтраница, которая будет открыта поверх текущей
object-idstringИдентификатор объекта
routeСтрокаURL действияФормируется из идентификаторов страницы, виджета и действия
uploadquery, defaults, copy, resolveИсточник данных мастер виджета при открытии страницыquery
page-nameСтрокаНаименование страницы
master-field-idСсылка на полеПоле в модели текущего виджета
detail-field-idСсылка на полеПоле в фильтрах мастер виджета на открываемой странице
submit-operation-idСсылка на операцию в объектеНа открываемой странице будут добавлены кнопки "Сохранить" и "Отмена". Кнопка "Сохранить" будет выполнять заданную операцию объекта.
submit-labelСтрокаНазвание кнопки отправки формы на открываемой страницеСохранить
submit-modelresolve filter multi edit datasourceМодель, с которой будет выполняться операция по кнопке "Сохранить".
focus-after-submittrue falseПоставить фокус в текущем виджете на запись, которую вернёт операция объекта
close-after-submittrue falseЗакрыть окно после успешного выполнения операции объектаtrue
close-on-escapetrue falseЗакрыть окно по кнопке Esctrue
redirect-url-on-submit-successСтрокаПереадресовать на URL после успешного выполнения операции объекта.
unsaved-data-prompt-on-closetrue falseПредупредить о несохраненных данных на форме при закрытии модального окна?true
master-paramСтрокаПараметр фильтра
refresh-widget-idСтрокаИдентификатор виджета, который необходимо обновить после успешного закрытия окнаТекущий виджет
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-widget-idСтрокаИдентификатор виджета открываемой страницы, данные которого будут копироватьсяГлавный виджет страницы
copy-field-idСтрокаИдентификатор поля виджета открываемой страницы, данные которого будут копироватьсяВся модель
target-modelresolve edit filter multi datasourceМодель виджета текущей страницы, в которую будут скопированы данныеresolve
target-widget-idСтрокаИдентификатор виджета текущей страницы, в которую будут скопированы данныеТекущий виджет
target-field-idСтрокаИдентификатор поля виджета текущей страницы, в которое будут скопированы данныеВся модель
copy-modemerge replace addТип слиянияmerge

Пример

<open-drawer  page-id="employee"  submit-operation-id="create"  upload="defaults">  ...</open-drawer>

<pre-filters>#

Тело

Предустановленные фильтры

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

Тело

Параметры действия

<pre-fields>#

Тело

Предустановленные поля

<a>#

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

Атрибуты

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

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

Тело

Параметры действия

Пример

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

<print>#

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

Атрибуты

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

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

Тело

Параметры действия

Пример

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

<refresh>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
widget-idСтрокаИдентификатор обновляемого виджетаТекущий виджет

Пример

<refresh widget-id="reports"/>

<invoke>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
operation-idСсылка на операцию объектаОперация объекта, которая будет выполнена над моделью виджета
object-idСсылка на объектСсылка на объект содержащий выполняемую операциюОбъект виджета
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-widget-idСтрокаИдентификатор виджета, который необходимо обновить после успешного выполнения действияТекущий виджет
optimistictrue falseВключение режима optimistic запросов на серверfalse
methodPOST, PUT, DELETE.Вызываемый метод.POST

<path-param>, <form-param>, <header-param>#

Тело

Параметры действия

Пример

<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>

<perform-validation>#

Провалидировать виджет.

Пример

<perform-validation model="edit"/>

<close>#

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

Атрибуты

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

Пример

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

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

Атрибуты

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

Пример

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

<clear>#

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

Атрибуты

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

Пример

<clear model="edit"/>

<set-value>#

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

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
target-field-idСсылка на поле моделиПоле модели, которое будет перезаписано значением, которое вернет функция в теле. При отсутствии, будет перезаписана вся модель.

Тело

JavaScript функция.

Пример

<set-value model="edit" target-field-id="fullname">  return firstName + lastName;</set-value>

<execute-query>#

Сделать запрос за выборкой данных.

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
query-idСсылка на выборкуВыборка, которая будет запрошена
target-field-idСсылка на поле моделиПоле модели, которое будет перезаписано значением, которое вернет выборка. При отсутствии, будет перезаписана вся модель.
value-field-idСсылка на поле выборкиПоле выборки, которое будет взято для записи в модель. При отсутствии, будет взята вся выборка. Если выборка вернула несколько значений, в каждом значении возьмется только это поле.

Тело

Фильтры

Пример

<execute-query  model="edit"  query-id="users"  target-field-id="name"  value-field-id="fullname">  <pre-filters>    <eq field-id="username" value="admin"/>  </pre-filters></execute-query>

<perform>#

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

Пример

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

Атрибуты

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

<set-value>#

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

Атрибуты

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

Пример

<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-widget-idСтрокаСсылка на обновляемый виджет

Пример

<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"/>