Миграция с 7.16 на 7.17
Изменения в сборке Frontend
- Версия React изменилась на 17+. Обновите ее в своем проекте в package.json или поставьте
*, чтобы использовать транзитивно из N2O - Настройка шапки, подвала и боковой панели приложения. Появился параметр
templatesв котором задаются кастомные компонентыheaderfootersidebar
Было:
import ...
const config = {
pages,
regions,
widgets,
controls,
cells,
fieldsets,
fields,
defaultTemplate: AppTemplate,
security: {
authProvider,
externalLoginUrl: './',
},
};
class App extends Component {
render() {
return <N2o {...createFactoryConfig(config)} />;
}
}
export default App;
Стало:
<application xmlns="http://n2oapp.net/framework/config/schema/application-1.0" welcome-page-id="index">
<header src="CustomHeader" />
<sidebar src="CustomSidebar" />
<footer src="CustomFooter" />
</application>
import ...
const config = {
pages,
regions,
widgets,
controls,
cells,
fieldsets,
fields,
templates: {
CustomHeader,
CustomSidebar,
CustomFooter,
},
security: {
authProvider,
externalLoginUrl: './',
},
};
function App() {
return <N2O {...createFactoryConfig(config)} />
}
export default App;
Изменения в XML API
- Настройка шапки, подвала и боковой панели приложения перенесена в файл application.xml. Это новый тип метаданных, описывающий структуру приложения. Требуется мигрировать содержимое файла *.header.xml в аналогичный файл *.application.xml.
Было:
<?xml version='1.0' encoding='UTF-8'?>
<header xmlns="http://n2oapp.net/framework/config/schema/header-2.0"
color="inverse"
welcome-page-id="index"
brand-name="N2O">
<nav>
<page page-id="index" route="/home" label="${contacts}"/>
</nav>
</header>
Стало:
<?xml version='1.0' encoding='UTF-8'?>
<application xmlns="http://n2oapp.net/framework/config/schema/application-1.0"
welcome-page-id="index">
<header title="N2O"
css-class="inverse">
<nav>
<page page-id="index" route="/home" label="${contacts}"/>
</nav>
</header>
</application>
Обратить внимание:
-свойство color в header теперь необходимо задавать в css-class;
-подвал раньше генерировался автоматически, теперь его необходимо прописывать в application.xml.
-
Настройка
n2o.header.homepage.idпереименована вn2o.homepage.id. -
Настройка
n2o.header.idпереименована вn2o.application.id. -
Настройка
n2o.header.fixedпереименована вn2o.navigationLayout.fixed. -
Упразднена настройка
n2o.header.title. -
У
<pagination>в списковых виджетах атрибутhide-single-page(по умолчаниюtrue), отвечающий за скрытие пагинации на единственной странице, был переименован вshow-single-page(по умолчаниюfalse). Обратная совместимость сохранена. -
В компонентах
ragio-groupиcheckbox-groupтипn2o(который был по умолчанию) переименован вdefault. Тип, который раньше называлсяdefaultи отвечал за стандартную html верстку компонента, удален. -
Изменены значения атрибута
validateу кнопок с (true,false) на (page,widget,none). Теперь кнопка может валидировать все виджеты страницы с помощью значенияpage. Значениеwidgetвалидирует только текущий виджет и работает так же, как и значениеtrueдо этого. Значениеnoneне валидирует ничего и заменяет собойfalse. Временно сохранена обратная совместимо сть.
Изменения в API автотестов
- Методы компонентов с выпадающими элементами (InputSelect, Select, TimePicker, LineFieldSet, LineRegion, PanelRegion) приведены к единому виду.
Теперь для изменения и проверки состояния выпадающего элемента в них используются методы:
expand(),collapse(),shouldBeExpanded(),shouldBeCollapsed().
Изменения в настройках
- Появилась возможность управлять положением сообщений об успехе/ошибке. Для этого введены следующие настройки:
n2o.api.message.position - фиксированная (fixed) или относительная (relative) позиция сообщения .
Стоит обратить внимание, что по умолчанию значение fixed, что отличается от старого поведения, которое можно вернуть, использовав значение relative.
n2o.api.message.placement - положение сообщения на странице при фиксации (top/bottom). По умолчанию top.