Навигатор по разделу:
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. Загрузить архив созданный ранее архив.