Источники данных
#
Виды источников данных#
<datasource>Стандартный источник данных
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
id | Строка | Идентификатор источника данных | |
query-id | Ссылка на выборку | Идентификатор выборки, на основе которой происходит получение данных | |
object-id | Ссылка на объект | Идентификатор объекта | |
default-values-mode | defaults query merge | Подстановка значений по умолчанию. defaults - значения по умолчанию заполняются данными прописанными в полях query - значения по умолчанию заполняются данными из запроса merge - значения по умолчанию заполняются путем слияния данных прописанных в полях и полученных из запроса (полученные из запроса в приоритете), id игнорируется | query |
size | Число | Размер выборки | 10 |
route | Строка | URL получения данных | true |
Тело
<filters> - Предустановленная фильтрация
<submit> - Отправка полей на сервер при их изменении
<dependencies> - Зависимости источника данных
Пример
<datasource id="ds1"> <filters> <eq field-id="id" value="{id}"/> ... </filters> <submit> ... </submit> <dependencies> <fetch on="ds2"/> ... </dependencies></datasource>
#
<stomp-datasource>STOMP-источник данных
Атрибуты
Наименование | Тип | Описание |
---|---|---|
id | Строка | Идентификатор источника данных |
destination | Строка | Место назначения |
Тело
<values> - Значения на момент инициализации
#
<values>Значения на момент инициализации
Тело
<value> - Инициализирующее значение
#
<value>Инициализирующее значение (имя атрибута задается пользователем)
Пример
<?xml version='1.0' encoding='UTF-8'?><application xmlns="http://n2oapp.net/framework/config/schema/application-3.0"> <datasources> <stomp-datasource id="notifCountDs" destination="/notif/count"> <values> <value count="0"/> </values> </stomp-datasource> </datasources></application>
#
<app-datasource>Источник данных, ссылающийся на источник из application.xml
Атрибуты
Наименование | Тип | Описание |
---|---|---|
id | Ссылка на источник данных | Идентификатор источника данных из application.xml |
Пример
<app-datasource id="app_ds"/>
#
<browser-storage>Источник, хранящий данные в браузере
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
id | Строка | Идентификатор источника данных | |
key | Строка | Ключ, под которым будут хранится данные | Глобальный идентификатор источника |
type | sessionStorage localStorage | Тип хранилища в браузере | sessionStorage |
size | Число | Размер выборки | 10 |
Тело
<submit> - Сохранение данных при их изменении
<dependencies> - Зависимости источника данных
#
<submit>Сохранение данных при их изменении
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
key | Строка | Ключ, под которым будут записываться данные | Ключ источника данных |
type | sessionStorage localStorage | Тип хранилища браузера, в которое будут записываться данные | Тип хранилища источника данных |
auto | true false | Автоматически ли записывать в хранилище при изменении данных? | true |
model | resolve edit filter multi datasource | Модель текущего источника данных, которая будет сохранена | resolve |
Пример
<browser-storage id="ds" key="store" type="localStorage"> <submit type="localStorage" auto="false" key="store" model="filter"/> <dependencies> <fetch on="ds2"/> ... </dependencies></browser-storage>
#
<inherited-datasource>Источник, получающий данные из другого источника
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
id | Строка | Идентификатор источника данных | |
source-datasource | Ссылка на источник данных | Идентификатор источника данных, из которого будут скопированы данные | |
source-model | resolve edit filter multi datasource | Модель источника данных, из которой будут скопированы данные | resolve |
source-field-id | Строка | Идентификатор поля, из которого будут скопированы данные | Вся модель |
size | Число | Размер выборки | 10 |
Тело
<submit> - Сохранение данных при их изменении
<dependencies> - Зависимости источника данных
<fetch-value> - Изменения целевой модели при копировании
<filters> - Предустановленная клиентская фильтрация
note
Клиентская фильтрация поддерживает только фильтрацию типа <eq>
#
<submit>Сохранение данных при их изменении
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
model | resolve edit filter multi datasource | Модель текущего источника данных, которая будет сохранена | resolve |
auto | true false | Автоматически ли записывать при изменении данных? | true |
target-datasource | Ссылка на источник данных | Идентификатор источника данных, в который производится сохранение | Значение source-datasource источника |
target-model | resolve edit filter multi datasource | Модель источника данных, в которую производится сохранение | Значение source-model источника |
target-field-id | Строка | Идентификатор поля, в которое производится сохранение | Значение source-field-id источника, если не задан target-datasource , иначе - вся модель |
Тело
<submit-value> - Изменения целевой модели при отправке
Пример
<datasources> <inherited-datasource id="ds" source-datasource="app-ds"> <submit target-model="false" target-field-id="name"> <submit-value>...</submit-value> </submit> </inherited-datasource></datasources>
#
<submit-value>JS выражение, позволяющее производить изменения целевой модели при ее отправке
Пример
<submit-value> var result = target result.docGroups = source result.docs = result.docs.map(obj => obj.groups.filter(it => source.find(g => g.id == it.id ) != null ) ) return result</submit-value>
#
<fetch-value>JS выражение, позволяющее производить изменения целевой модели при копировании в inherited-datasource
Пример
<fetch-value> return source.docGroups.map( obj => obj.docsCount = source.docs.filter(it => it.groups.find(g => g.id == obj.id ) != null ).length )</fetch-value>
#
<parent-datasource>Источник, ссылающийся на источник из родительской страницы
Атрибуты
Наименование | Тип | Описание |
---|---|---|
id | Ссылка на источник данных | Идентификатор источника данных родительской страницы |
Пример
<datasources> <parent-datasource id="ds"/></datasources>
#
Зависимости источника данных#
<fetch>Обновление данных при изменении зависимых источников данных
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
on | Ссылка на источник данных | Идентификатор зависимого источника данных | |
model | resolve edit filter multi datasource | Модель зависимого источника данных | resolve |
Пример
<dependencies> <fetch on="ds" model="filter"/></dependencies>
#
<copy>Копирование части модели из другого источника
Атрибуты
Наименование | Тип | Описание | Значение по умолчанию |
---|---|---|---|
on | Ссылка на источник данных | Идентификатор источника данных, из которого копируются данные | |
source-model | resolve edit filter multi datasource | Модель источника данных, из которой будут скопированы данные | resolve |
target-model | resolve edit filter multi datasource | Модель текущего источника, в которую будут скопированы данные | resolve |
source-field-id | Строка | Идентификатор поля, из которого будут скопированы данные | Вся модель |
target-field-id | Строка | Идентификатор поля текущего источника, в которое будут скопированы данные | Вся модель |
submit | true false | Вызов сохранения данных сразу после копирования | false |
apply-on-init | true false | Срабатывание копирования при инициализации источника данных | false |
Пример
<dependencies> <copy on="ds" source-model="resolve" target-model="filter" source-field-id="name" target-field-id="name"/></dependencies>