Плагины

Навигатор по разделу:

1. Общие сведения

Данный документ содержит общую информацию о плагинах пользовательского интерфейса для системы IGA. Реализация примеров доступна в репозитории по ссылке

2. Содержимое репозитория

В репозитории доступны примеры следующих плагинов:

  • Форма заявки;

  • Действие над сущностью;

  • Виджет личного кабинета.

Для каждого примера реализовано:

  • Пример метаданных;

  • Пример реализации.

3. Сборка

3.1. Сборка

npm install npm run build

3.2. Запуск отладочной среды

npm start

Отладочная среда доступна по адресу http://localhost:4201

4. Поставка плагинов в продукт

4.1. Конфигурация сборки плагина

  • Конфигурация сборки выставляемых для продукта плагинов осуществляется в файле apps/iga-plugin-example/webpack.config.js в виде опций ModuleFederationPlugin

Следует обратить внимание на параметры:

name имя плагина (например: iga_plugin_example). Понадобится в дальнейшем при поставке артефактов сборки в нужную папку (см. "Поставка");

секция exposes список выставляемых модулей. Имена выставляемых модулей в данной секции должны совпадать с внутренними именами модулей.

В каждом плагине может быть поставлено неограниченное количество модулей, каждый из которых может поставлять неограниченное число плагинов определенного типа, указанного в настройках.

  • Метаданные плагинов задаются в файле apps/iga-plugin-example/src/metadata.json

4.1.1. Плагин действия по сущностям

Пример метаданных:

{
  "pluginType": "EntityAction",
  "name": "example-action-plugin",
  "displayName": "Плагин примера действий к объектам",
  "pluginModuleName": "EntityActionsModule"
}

Расположение примера реализации: https://devenv.avanpost.ru/iga-public-samples/iga-plugin-example/-/tree/develop/apps/iga-plugin-example/src/app/entity-actions

4.1.2. Плагин форм заявок

Пример метаданных:

{
  "pluginType": "Document",
  "name": "example-document-plugin",
  "displayName": "Плагин примера заявок",
  "pluginModuleName": "DocumentsModule"
}

Расположение примера реализации: https://devenv.avanpost.ru/iga-public-samples/iga-plugin-example/-/tree/develop/apps/iga-plugin-example/src/app/documents

4.1.3. Плагин виджетов личного кабинета

Пример метаданных:

{
  "pluginType": "WorkspaceWidget",
  "name": "example-workspace-plugin",
  "displayName": "Плагин примера виджета личного кабинета",
  "pluginModuleName": "WorkspaceWidgetsModule"
}

Расположение примера реализации: https://devenv.avanpost.ru/iga-public-samples/iga-plugin-example/-/tree/develop/apps/iga-plugin-example/src/app/workspace-widgets

5. Сборка

npm run build

артефакты сборки dist/iga-plugin-example/

6. Подготовка к поставке

1. Поместить файл с версией (VERSION) в артефакты сборки, указав текстовое обозначение версии, например короткое имя коммита;

2. Запаковать в архив директорию с артефактами. Имя архива должно совпадать с именем, указанном в webpack.config, например iga_plugin_example.zip.

7. Поставка

1. В административном интерфейсе открыть раздел "Администрирование" -> "Плагины";

2. Загрузить архив созданный ранее архив.

Обсуждение