Миграция с 7.27 на 7.28
7.28.0
Изменения в сборке
- Версия Java повышена с 11 на 17
- Версия Spring Boot повышена с 2.7.5 на 3.2.2
- Версии Selenide повышена c 6.17.0 на 7.3.1
Изменения в XML API
- Из элемента
<list>
был удален элемент<switch>
. - В элементе
<list>
по умолчанию значения выводятся в столбец, а не в строку. - Изменено формирование маршрута в действиях
<a>
приtarget="application"
и<print>
.
- при отсутствии ведущего
/
к маршруту будет добавлен/
, а не маршрут родительской страницы, как было ранееСейчас: "profile" -> "/profile"
Ранее: "profile" -> "/users/1/profile" (где /users/1 - маршрут родительской страницы) - при ведущих
./
к маршруту будет добавлен путь родительской страницыСейчас: "./profile" -> "/users/1/profile" (где /users/1 - маршрут родительской страни цы)
Ранее: "./profile" -> "./profile"
noteДля сохранения работоспособности приложения при отсутствии у маршрута ведущего
/
добавьте в его начало./
. - при отсутствии ведущего
- Упразднена валидация
<dialog>
. Диалоговое окно перед\после операции можно вызвать с помощью действий confirm или show-modal.
Пример, валидации в виде диалога в версии 7.27 и ниже
test.object.xml
<object xmlns="http://n2oapp.net/framework/config/schema/object-4.0">
<operations>
<operation id="create">
<invocation>
...
</invocation>
<validations white-list="nameCheck"/>
</operation>
</operations>
<validations>
<dialog id="nameCheck" server-moment="after-fail-operation"
result="!(#this[errorMessage].contains('Empty name'))"
title="Вы не заполнили имя."
message="Заполнить его значением по умолчанию?">
<toolbar>
<button label="Yes">
<invoke operation-id="create">
<header-param name="name" value="default"/>
</invoke>
</button>
<button label="Close">
<close/>
</button>
</toolbar>
</dialog>
</validations>
</object>
modal.page.xml
<simple-page xmlns="http://n2oapp.net/framework/config/schema/page-4.0">
...
<form>
<toolbar>
<button label="Сохранить">
<invoke operation-id="create"/>
</button>
</toolbar>
</form>
...
</simple-page>
Пример, валидации в виде диалога в версии 7.28
test.object.xml
<object xmlns="http://n2oapp.net/framework/config/schema/object-4.0">
<operations>
<operation id="create">
<invocation>
...
</invocation>
</operation>
<!-- эта операция используется для валидации -->
<operation id="checkName">
<invocation>
...
</invocation>
</operation>
</operations>
</object>
modal.page.xml
<simple-page xmlns="http://n2oapp.net/framework/config/schema/page-4.0">
...
<form>
<toolbar>
<button label="Сохранить">
<invoke operation-id="checkName" message-on-success="false"/>
<if test="name == null || name == ''">
<confirm title="Вы не заполнили имя." text="Заполнить его значением по умолчанию?">
<ok label="Да"/>
<cancel label="Нет"/>
</confirm>
<set-value to="name">'default'</set-value>
</if>
<invoke operation-id="create"/>
<refresh datasource="ds"/>
<close/>
</button>
</toolbar>
</form>
...
</simple-page>
Изменения Frontend
- Обработка security-* параметров перенесена в ядро. Теперь нет необходимости производить проверку прав на отдельных компонентах.
В связи с этим удалены за ненадобностью хелперы
SecurityController
,SecurityProvider
,SecurityContext
. При использовании их в кастомных компонентах, достаточно просто убрать их. Параметры, не прошедшие проверку прав, будут отфильтрованы на этапе обработки метаданных страницы. - В пакетах
n2o-framework
иn2o-components
версии react и react-dom указаны как peer-dependencies, то есть они устанавливаются в dependencies проекта, который их использует. Поддерживаемые версии react и react-dom "^17.0.0" и "^18.0.0".
7.28.9
Изменения в настройках
- Добавлена boolean настройка
n2o.access.filtering_for_unique
.
При значенииtrue
во все запросы с size=1 будут добавлены фильтры<object-filters>
из access схемы, чего не происходило ранее. По умолчанию значением настройки являетсяfalse
.