Миграция с 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.