Плагины

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


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

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

Внимание

Примеры плагинов в указанном репозитории собраны для работы с IGA версии 7.8. Для их корректного отображения и работы убедитесь, что в вашей Системе используется именно эта версия продукта.

Правило является общим. То есть любой плагин должен быть собран под ту версию продукта, в котором планируется его использование.


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

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

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

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

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

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

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

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


Сборка

Сборка

npm install npm run build

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

npm start

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


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

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

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

Внимание

Внимание на параметры:

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

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

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

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

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

{
  "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

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

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

{
  "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

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

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

{
  "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


Сборка

npm run build

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


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

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

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


Поставка

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

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

Обсуждение