Подключение плагина аналитической панели в веб-приложении

Плагин - это отдельно написанный блок, который может быть подключен к аналитической панели.

При работе с плагинами в настольном приложении используются модули написанные на Fore. Для работы в веб-приложении код плагин пишется на JavaScript.

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

Регистрация плагина через сервисы

Для отображения плагина в веб-приложения необходимо:

  1. Зарегистрировать в сервисах плагин, имеющий ссылку на скрипт.

  2. Настроить аналитическую панель в веб-приложении, задав свойство «ServicesPlugins», для отображения плагинов, зарегистрированных в сервисах.

Регистрация плагина в общих ресурсах

Регистрация плагина производится в настольном приложении, ссылка на *.js файл задается при регистрации плагина в Fore свойством .WebUrl, например:

plugin.WebUrl := "http://test/PP_App_v8.1/app/plugin.js";

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

Настройка аналитической панели в веб-приложении

Свойство «ServicesPlugins» задается двумя способами:

<AppConfig>
  <Modules>
   <Dashboard>
    <ReportBox
 ServicesPlugins="true"/>
   </Dashboard>
  </Modules>
</AppConfig>

После редактирования файла перезапустите веб-сервер, используемый веб-приложением;

Пример файла PP.xml, содержащего настройки для работы с плагинами

kapBox = new Kap.KapBox({
    Metabase: metabase,
    ParentNode: "DashboardBox",
    Key: ppKey,
    Mode: ppMode,
    ServicesPlugins: true
});

Пользовательская регистрация плагина

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

Для пользовательской регистрации плагина используйте метод regPluginBlock пространства имен Kap, например:

        Kap.regPluginBlock({
            Id:  "SourceLabel",   //id, по которому происходит связка плагин-блока с его реализацией
            Name:  "Source label",   //удобочитаемое наименование типа блока
            View:  "PP.Ui.MyLabel",    //класс визуализатора или имя класса визуализатора
            Master:  "PP.Ui.MyMaster",    //класс мастера или имя класса мастера
            Icon:  "../build/img/app/MainIcon.png",    //путь к иконке (16*16) для  плагина, необязательный параметр
            SourceClass:  2561,    //код класса источника данных, если не задан то КАП не предоставляет плагину источник
            Js: "pluginBlocks.js"   // для динамической загрузки скрипта с реализацией  плагина, необязательный параметр
        });

Требования к js-скрипту плагина

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

В сборках Prognoz Platform 8 присутствует несколько примеров плагинов:

Структура плагина

 PP.Exp.Ui.EaxRadiusAngleChartView.init = function ()
 {
  if (window.Kap)
   Kap.regPluginBlock({
    Id: "RadiusAngleChart",
    Name: "RadiusAngleChart",
    View: "PP.Exp.Ui.EaxRadiusAngleChartView",
    SourceClass: PP.App.ModuleType.Olap,
    Js: "EaxRadiusAngleChart.js"
   });
 };

При регистрации настроек плагина методом Kap.regPluginBlock можно задать дополнительные параметры плагина в свойстве Props:

Props: { // для установки значений по умолчанию для некоторых свойств блока-плагина, необязательный параметр
    "name": "default name",
    "decor": {
    "useBorder": "false"
    },
   "pluginProps": "{ <свойства плагина>}"
}

См. также:

 Спецификация разработки на JavaScript | Регистрация плагина в настольном приложении