Preparing search index...

    Быстрый старт

    Кастомизация пользовательского интерфейса происходит подключением к приложению внешних модулей пользователя. Внешние модули содержат список точек расширения, которые могут дополнять/изменять поведение приложения.

    В качестве примера кастомизации, в шапку приложения будет добавлена кнопка, используя точку расширения RightHeaderItem:

    1. Создать директорию проекта <projectRoot> и перейти в неё.

    2. Создать внешний модуль <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, и подключение сторонних библиотек, то следует обратиться к разделу Сборка внешних модулей.

    3. Создать и настроить конфигурационный файл <projectRoot>/customer.json:

      {
      "APP_TYPE": [],
      "serverUrl": "/universe-backend/api/",
      "EXTERNAL_MODULES": [
      "./CUX/custom.js"
      ]
      }

      В свойстве EXTERNAL_MODULE указываются пути к внешним модулям, относительно корневой директории приложения в docker-контейнере: /usr/share/nginx/html/.

    4. Запустить 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/ - Рекомендуемая директория для расположения внешних модулей
    5. Приложение будет доступно по адресу: http://localhost. После запуска приложения, добавленную точку расширения можно увидеть в правом углу шапки.