Skip to main content

Источники данных

Виды источников данных#

<datasource>#

Стандартный источник данных

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
idСтрокаИдентификатор источника данных
query-idСсылка на выборкуИдентификатор выборки, на основе которой происходит получение данных
object-idСсылка на объектИдентификатор объекта
default-values-modedefaults 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СтрокаКлюч, под которым будут хранится данныеГлобальный идентификатор источника
typesessionStorage localStorageТип хранилища в браузереsessionStorage
sizeЧислоРазмер выборки10

Тело

<submit> - Сохранение данных при их изменении
<dependencies> - Зависимости источника данных

<submit>#

Сохранение данных при их изменении

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
keyСтрокаКлюч, под которым будут записываться данныеКлюч источника данных
typesessionStorage localStorageТип хранилища браузера, в которое будут записываться данныеТип хранилища источника данных
autotrue falseАвтоматически ли записывать в хранилище при изменении данных?true
modelresolve 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-modelresolve edit filter multi datasourceМодель источника данных, из которой будут скопированы данныеresolve
source-field-idСтрокаИдентификатор поля, из которого будут скопированы данныеВся модель
sizeЧислоРазмер выборки10

Тело

<submit> - Сохранение данных при их изменении
<dependencies> - Зависимости источника данных
<fetch-value> - Изменения целевой модели при копировании <filters> - Предустановленная клиентская фильтрация

note

Клиентская фильтрация поддерживает только фильтрацию типа <eq>

<submit>#

Сохранение данных при их изменении

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
modelresolve edit filter multi datasourceМодель текущего источника данных, которая будет сохраненаresolve
autotrue falseАвтоматически ли записывать при изменении данных?true
target-datasourceСсылка на источник данныхИдентификатор источника данных, в который производится сохранениеЗначение source-datasource источника
target-modelresolve 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Ссылка на источник данныхИдентификатор зависимого источника данных
modelresolve edit filter multi datasourceМодель зависимого источника данныхresolve

Пример

<dependencies>    <fetch on="ds" model="filter"/></dependencies>

<copy>#

Копирование части модели из другого источника

Атрибуты

НаименованиеТипОписаниеЗначение по умолчанию
onСсылка на источник данныхИдентификатор источника данных, из которого копируются данные
source-modelresolve edit filter multi datasourceМодель источника данных, из которой будут скопированы данныеresolve
target-modelresolve edit filter multi datasourceМодель текущего источника, в которую будут скопированы данныеresolve
source-field-idСтрокаИдентификатор поля, из которого будут скопированы данныеВся модель
target-field-idСтрокаИдентификатор поля текущего источника, в которое будут скопированы данныеВся модель
submittrue falseВызов сохранения данных сразу после копированияfalse
apply-on-inittrue falseСрабатывание копирования при инициализации источника данныхfalse

Пример

<dependencies>    <copy on="ds" source-model="resolve" target-model="filter" source-field-id="name" target-field-id="name"/></dependencies>