Действия
Библиотека компонентов
http://n2oapp.net/framework/config/schema/action-1.0
#
Базовые свойстваАтрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
model | resolve filter multi edit datasource | Модель, над которой выполнится действие. Если модель пустая, то действие будет заблокировано. | resolve |
src | Имя javaScript функции | Реализация действия | Для каждого действия свои умолчания. Для <custom> атрибут обязательный. |
#
<open-page>Открыть страницу поверх текущей.
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
page-id | Ссылка на страницу | Страница, которая будет открыта поверх текущей | |
object-id | string | Идентификатор объекта | |
target | application, newWindow | Сценарий действия открытия страницы newWindow - в новой вкладке, application - в текущем приложении | application |
route | Строка | URL действия | Формируется из идентификаторов страницы, виджета и действия |
page-name | Строка | Наименование страницы | |
submit-model | resolve filter multi edit datasource | Модель, с которой будет выполняться операция по кнопке "Сохранить". | |
submit-label | Строка | Название кнопки отправки формы на открываемой странице | Сохранить |
close-after-submit | true false | Закрыть окно после успешного выполнения операции объекта | true |
redirect-url-on-submit-success | Строка | Переадресовать на URL после успешного выполнения операции объекта. | |
redirect-target-on-submit-success | self, 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-mode | defaults, 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-id | string | Идентификатор объекта | |
route | Строка | URL действия | Формируется из идентификаторов страницы, виджета и действия |
page-name | Строка | Наименование страницы | |
modal-size | sm, lg | Размер модального окна | lg |
scrollable | true false | Будет ли модальное окно фиксированного размера, а полоса прокрутки внутри | |
submit-operation-id | Ссылка на операцию в объекте | На открываемой странице будут добавлены кнопки "Сохранить" и "Отмена". Кнопка "Сохранить" будет выполнять заданную операцию объекта. | |
submit-label | Строка | Название кнопки отправки формы на открываемой странице | Сохранить |
submit-model | resolve filter multi edit datasource | Модель, с которой будет выполняться операция по кнопке "Сохранить". | |
close-after-submit | true false | Закрыть окно после успешного выполнения операции объекта | true |
redirect-url-on-submit-success | Строка | Переадресовать на URL после успешного выполнения операции объекта. | |
unsaved-data-prompt-on-close | true false | Предупредить о несохраненных данных на форме при закрытии модального окна? | true |
refresh-datasources | Список ссылок на источники данных | Идентификаторы источника данных, который необходимо обновить после успешного выполнения операции | datasource у button, а если нет, datasource текущего виджета |
refresh-on-close | true false | Обновление виджета после закрытия модального окна | false |
submit-action-type | invoke copy | Действие при нажатии кнопки "Сохранить" | invoke |
copy-model | resolve edit filter multi datasource | Модель виджета открываемой страницы, которая будет скопирована | resolve |
copy-datasource | Сссылка на источник данных | Идентификатор источника данных открываемой страницы, данные которого будут копироваться | Главный виджет страницы |
copy-field-id | Строка | Идентификатор поля виджета открываемой страницы, данные которого будут копироваться | Вся модель |
target-model | resolve edit filter multi datasource | Модель виджета текущей страницы, в которую будут скопированы данные | resolve |
target-datasource | Сссылка на источник данных | Источник данных текущей страницы, в который будут скопированы данные (по умолчанию текущий) | Текущий виджет |
target-field-id | Строка | Идентификатор поля виджета текущей страницы, в которое будут скопированы данные | Вся модель |
copy-mode | merge replace add | Тип слияния | merge |
has-header | true false | Наличие шапки | true |
class | CSS класс | Класс модального окна | |
backdrop | false true static | Наличие фона модального окна и закрытие по клику на фон. false - прозрачный фон, клик по фону не закрывает модальное окно; true - темный фон, клик по фону закрывает модальное окно; static - темный фон, клик по фону не закрывает модальное окно. | static |
style | CSS свойство | Стиль окна |
Тело
Параметры пути открытия новой страницы 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-id | string | Идентификатор объекта | |
route | Строка | URL действия | Формируется из идентификаторов страницы, виджета и действия |
page-name | Строка | Наименование страницы | |
submit-operation-id | Ссылка на операцию в объекте | На открываемой странице будут добавлены кнопки "Сохранить" и "Отмена". Кнопка "Сохранить" будет выполнять заданную операцию объекта. | |
submit-label | Строка | Название кнопки отправки формы на открываемой странице | Сохранить |
submit-model | resolve filter multi edit datasource | Модель, с которой будет выполняться операция по кнопке "Сохранить". | |
close-after-submit | true false | Закрыть окно после успешного выполнения операции объекта | true |
close-on-escape | true false | Закрыть окно по кнопке Esc | true |
redirect-url-on-submit-success | Строка | Переадресовать на URL после успешного выполнения операции объекта. | |
unsaved-data-prompt-on-close | true false | Предупредить о несохраненных данных на форме при закрытии модального окна? | true |
refresh-datasources | Список ссылок на источники данных | Идентификаторы источника данных, который необходимо обновить после успешного выполнения операции | datasource у button, а если нет, datasource текущего виджета |
refresh-on-close | true false | Обновление виджета после закрытия drawer | false |
closable | true false | Есть ли крестик для закрытия | true |
backdrop | true false | Включение маски(backdrop) | true |
width | Строка | Ширина компонента | |
height | Строка | Высота компонента | |
placement | left top right bottom | Позиция компонента | |
level | Строка | Сдвиг элемента или группы элементов при открытии | |
fixed-footer | true false | Фиксирование footer внизу drawer. | false |
submit-action-type | invoke copy | Действие при нажатии кнопки "Сохранить" | invoke |
copy-model | resolve edit filter multi datasource | Модель виджета открываемой страницы, которая будет скопирована | resolve |
copy-datasource | Сссылка на источник данных | Идентификатор источника данных открываемой страницы, данные которого будут копироваться | Главный виджет страницы |
copy-field-id | Строка | Идентификатор поля виджета открываемой страницы, данные которого будут копироваться | Вся модель |
target-model | resolve edit filter multi datasource | Модель виджета текущей страницы, в которую будут скопированы данные | resolve |
target-datasource | Сссылка на источник данных | Источник данных текущей страницы, в который будут скопированы данные (по умолчанию текущий) | Текущий виджет |
target-field-id | Строка | Идентификатор поля виджета текущей страницы, в которое будут скопированы данные | Вся модель |
copy-mode | merge 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}. Подробнее о формировании ссылки | |
target | self, 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-id | string | Идентификатор объекта | |
route | Строка | URL адрес действия | Формируется изидентификаторов страницы, виджета и действия |
close-on-success | true false | Закрыть окно после успешного выполнения действия. Закроется модальное окно, либо откроется предыдущая страница в хлебных крошках. | false |
refresh-on-success | true false | Необходимо ли обновлять данные после успешного выполнения действия | true |
message-on-success | true false | Показать сообщение об успешном выполнении действия | true |
message-on-fail | true false | Показать сообщение о неудачном выполнении действия | true |
message-position | fixed relative | Фиксированное или относительное положение сообщения | |
message-placement | top bottom | Положение сообщения при фиксации | |
redirect-url | Строка | URL адрес, на который произойдет переход сразу после успешного выполнения действия. Можно задавать относительный путь и плейсхолдеры, например, redirect-url="../:id" | |
redirect-target | self, newWindow, application | Сценарий открытия ссылки сразу после успешного выполнения операции (См. target в <a> ). | self |
refresh-datasources | Список ссылок на источники данных | Идентификаторы источника данных, который необходимо обновить после успешного выполнения операции | datasource у button, а если нет, datasource текущего виджета |
optimistic | true false | Включение режима optimistic запросов на сервер | false |
submit-all | true false | Отправить всю форму или только те, которые прописаны в form-param | true |
method | POST, 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-prompt | true false | Показать предупреждение о наличии несохраненных данных. | true |
refresh | true false | Обновлять родительский виджет при закрытии модального/дровер окна. | false |
Пример
<close unsaved-data-prompt="false"/>
#
<copy>Копирование данных.
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
source-model | resolve edit filter multi datasource | Модель, которая будет скопирована | resolve |
source-datasource | Сссылка на источник данных | Идентификатор источника данных источника | Источник данных текущего виджета |
source-field-id | Строка | Идентификатор копируемого поля источника | Вся модель |
target-model | resolve edit filter multi datasource | Модель, в которую будут скопированы данные | resolve |
target-page-id | Строка | Идентификатор целевой страницы | Текущая страница |
target-datasource | Сссылка на источник данных | Идентификатор целевого источника данных | |
target-field-id | Строка | Идентификатор поля целевого виджета, в которое будут скопированы данные | Вся модель |
mode | merge replace add | Тип слияния данных | merge |
Пример
<copy source-field-id="id" target-datasource="table" target-field-id="dictionary.id"/>
#
<clear>Очистить модель.
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
model | resolve filter multi edit datasource | Модель, которая будет очищена. | Текущая модель виджета. |
close-on-success | true, 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-model | resolve filter edit multi datasource | Исходная модель | resolve |
to | Строка | Поле для записи значения | Вся модель |
target-datasource | Сссылка на источник данных | Идентификатор целевого источника данных | Источник данных текущего виджета |
target-model | resolve filter edit multi datasource | Целевая модель | resolve |
merge-mode | merge, 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-success | true false | Показать сообщение об успешном выполнении действия | false |
message-on-fail | true false | Показать сообщение о неудачном выполнении действия | false |
message-position | fixed relative | Фиксированное или относительное положение сообщения | |
message-placement | top bottom | Положение сообщения при фиксации | |
route | Строка | URL запроса | |
refresh-on-success | true 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-model | resolve 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-model | resolve 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-model | resolve 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-button | true 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"/>