Миграция с 7.28 на 7.29
7.29.0
Изменения в сборке
- Версия NodeJS повышена до 20 (с поддержкой 22)
- Версия Java повышена с 17 на 21
- Версия Spring Boot повышена с 3.2.2 на 3.5.3
Изменения в XML API
-
Упразднены устаревшие схемы:
query-4.0,application-2.0,page-3.0,n2o-widget-4.0,region-2.0,fieldset-4.0,toolbar-base-1.0,button-1.0,action-1.0,control-2.0,n2o-cell-2.0,properties-base-1.0с сохранением обратной совместимости. -
Добавлена новая схема
table-settings-1.0для задания настроек таблицы. Генерация кнопок с настройками с помощью атрибутаgenerateобъявлена устаревшей и удалена.
<simple-page xmlns="http://n2oapp.net/framework/config/schema/page-4.0"
xmlns:gen="http://n2oapp.net/framework/config/schema/gen-attr">
<table>
...
<toolbar>
<sub-menu generate="tableSettings"/>
<sub-menu icon="fa fa-gear">
<menu-item generate="filters"/>
<menu-item generate="columns" gen:defaultColumns="name, type"/>
</sub-menu>
</toolbar>
</table>
</simple-page>
<simple-page xmlns="http://n2oapp.net/framework/config/schema/page-4.0"
xmlns:ts="http://n2oapp.net/framework/config/schema/table-settings-1.0">
<table>
...
<toolbar>
<sub-menu icon="fa fa-gear">
<ts:filters/>
<ts:columns/>
<ts:refresh/>
<ts:resize/>
<ts:word-wrap/>
<ts:export/>
</sub-menu>
<sub-menu icon="fa fa-gear">
<ts:filters/>
<ts:columns default-value="name, type"/>
</sub-menu>
</toolbar>
</table>
</simple-page>
-
Идентификатор колонок таблиц больше не будет отображаться в заголовке. Это означает, что больше нет необходимости использовать запись
<column text-field-id="">или<column label=""/>для задания пустого заголовка. -
Добавлена проверка на несовместимость атрибутов
fetch-on-change="true"иfetch-on-clear="false"фильтров таблицы. -
Упразднена страница
<searchable-page>. -
Прекращена поддержка
<left-right-page>,<top-left-right-page>с сохранением обратной совместимости. В будущих версиях эти элементы будут удалены.
<left-right-page xmlns="http://n2oapp.net/framework/config/schema/page-4.0">
<left width="80%">
<panel title="Регион 1">...</panel>
<panel title="Регион 2">...</panel>
</left>
<right width="20%">
<panel title="Регион 3">...</panel>
</right>
</left-right-page>
<page xmlns="http://n2oapp.net/framework/config/schema/page-4.0">
<regions>
<flex-row>
<region style="width: 80%">
<panel title="Регион 1">...</panel>
<panel title="Регион 2">...</panel>
</region>
<panel title="Регион 3" style="width: 20%">...</panel>
</flex-row>
</regions>
</page>
Изменения в Java API
- Всем enum в названии был проставлен суффикс
Enum. Так, например,BadgePositionбыл переименован вBadgePositionEnum.
Изменения в Data API
- Изменен запрос для экспорта данных.
?format=xlsx&charset=utf8&url=/sandbox/view/4oYjK/n2o/data/_ds?page=1%26size=5%26show=name%26show=region
{
"format": "xlsx",
"charset": "utf8"
"url": "/sandbox/view/4oYjK/n2o/data/_ds?page=1&size=5"
"fields": [
"name": "Наименование",
"region": "Регион"
]
}
Имена колонок будут браться непосредственно из UI. Задавать имена явно в полях query.xml необязательно.
Изменения в настройках
- Изменено значение по умолчанию для настройки
n2o.access.filtering_for_uniqueнаtrue.
Это означает, что теперь по умолчанию во все запросы с size=1 будут добавлены фильтры<object-filters>из access схемы. Рекомендуем учесть, что в будущих версиях поддержка данной настройки прекратится.
7.29.5
Изменения в Java API
- Для обработки разных конструкторов критериев был введен класс
CriteriaConstructorFactory. Теперь для подключения своих конструкторов нет необходимости переопределять бинN2oQueryProcessor. Достаточно реализовать интерфейсCriteriaConstructor, сделав реализацию бином.
@Component
public class MyCriteriaConstructor implements CriteriaConstructor<MyCriteria> {
private final boolean pageStartsWith0;
public N2oCriteriaConstructor(@Value("${n2o.engine.pageStartsWith0:false}") boolean pageStartsWith0) {
this.pageStartsWith0 = pageStartsWith0;
}
@Override
public Class<MyCriteria> getCriteriaClass() {
return MyCriteria.class;
}
@Override
public MyCriteria construct(N2oPreparedCriteria criteria, MyCriteria instance) {
instance.addSorting(criteria.getSorting());
instance.setSize(criteria.getSize());
instance.setPage(pageStartsWith0 ? criteria.getPage() - 1 : criteria.getPage());
instance.setCount(criteria.getCount());
return instance;
}
}
Более того, если в вашем проекте переопределялся N2oQueryProcessor, то его следует, либо удалить,
либо задавать в нем CriteriaConstructorFactory вместо CriteriaConstructor.
7.29.6
Изменения в XML API
- Добавлена проверка, которая после действия
<close>разрешает указывать только действия<close>или<on-fail>
7.29.7
Изменения в настройках
- Добавлена настройка
n2o.api.control.dependency.on.auto=falseдля автоматического заполнения атрибутаonпо выражению в теле зависимости. Напоминаем, что без заполнения данного атрибута зависимость не будет работать корректно.
Для большего контроля все же рекомендуется не устанавливать настройку вtrue, а вручную указывать значения атрибутаon