Кастомизация пользовательского интерфейса происходит подключением к приложению внешних модулей пользователя. Внешние модули содержат список точек расширения, которые могут дополнять/изменять поведение приложения.
В качестве примера кастомизации, в шапку приложения будет добавлена кнопка,
используя точку расширения RightHeaderItem
:
Создать директорию проекта <projectRoot>
и перейти в неё.
Создать внешний модуль <projectRoot>/custom.js
:
const {Platform, Vendor} = window.Universe;
const {Uikit, Locale} = Platform;
Locale.i18n.addResourceBundle(Locale.Locales.Ru, {HeaderButton: {text: 'Нажми меня!'}});
Locale.i18n.addResourceBundle(Locale.Locales.En, {HeaderButton: {text: 'Click me!'}});
export class HeaderButton extends Vendor.React.Component {
render() {
return (
Vendor.React.createElement(
Uikit.Button,
{intent: Uikit.INTENT.DANGER},
Locale.i18n.t('HeaderButton>text')
)
);
}
}
export default {
userExits: [
{
type: 'RightHeaderItem',
moduleId: 'uniqueId',
active:true,
system: false,
resolver: () => true,
meta: {
order: 1,
},
component: HeaderButton,
}
]
};
В данном примере внешний модуль написан на чистом JavaScript, для быстрого подключения его к приложению, без дополнительных шагов сборки. Если есть необходимость использовать TypeScript, JSX, и подключение сторонних библиотек, то следует обратиться к разделу Сборка внешних модулей.
Создать и настроить конфигурационный файл <projectRoot>/customer.json
:
{
"APP_TYPE": [],
"serverUrl": "/universe-backend/api/",
"EXTERNAL_MODULES": [
"./CUX/custom.js"
]
}
В свойстве EXTERNAL_MODULE
указываются пути к внешним модулям, относительно корневой директории приложения
в docker-контейнере: /usr/share/nginx/html/
.
Запустить docker-контейнер приложения:
docker run %{APP_DOCKER_IMAGE}% \
-p '80:80' \
-v ./customer.json:/usr/share/nginx/html/customer.json \
-v ./custom.js:/usr/share/nginx/html/CUX/custom.js\
-e BACKEND_ADDRESS=$BACKEND_ADDRESS
Где $BACKEND_ADDRESS
- Адрес запущенного бэкенда системы (например: http://localhost:8080)
Внутри docker-контейнера:
/usr/share/nginx/html/customer.json
- Путь к файлу конфигурации приложения/usr/share/nginx/html/CUX/
- Рекомендуемая директория для расположения внешних модулейПриложение будет доступно по адресу: http://localhost. После запуска приложения, добавленную точку расширения можно увидеть в правом углу шапки.