Skip to main content

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