Работа виджета в разделе интеграций

В маркетплейсе интеграций при клике на виджет открывается модальное окно с настройками. При открытии этого окна система отрисует поля, которые перечислены в разделе settings файла manifest.json.

Если вы хотите кастомизировать внешний вид данного окна, для этого есть колбэк settings.

define(['jquery'], function ($) {
  return function () {
    this.callbacks = {
      settings: function () {
        // ...
      }
    };
  };
});

Публичные виджеты не должны никак скрывать/влиять на рейтинг и отзывы виджета.

Для всех виджетов, которые загружены в интеграции, запрещены виртуальные клики на кнопку установить.

Также для того, чтобы виджет мог установиться в аккаунт пользователю в нем должен обязательно присутствовать метод onSave, который должен возвращать либо true, либо объект promise, если при сохранении вам нужно сделать какой-то запрос к себе на сервер.

Данный метод вызывается при щелчке пользователя на кнопке “Установить/Сохранить” в настройках виджета. Можно использовать для отправки введенных в форму данных и смены статуса виджета. Так же этот метод срабатывает при отключении виджета. 

Собственная страница настроек

Виджет может иметь собственную страницу настроек (так же как и собственный пункт в левом меню), выглядеть это будет так:

Для этого необходимо в manifest.json указать локейшн “advanced_settings”:

{
  ...

  "locations": [
    "advanced_settings"
  ],
  "advanced": {
    "title": "advanced.title"
  },

  ...
}

После установки виджета с таким локейшном в меню раздела “Настройки” появится новый пункт с названием из advanced.title, справа от названия виджета будет указано его название.

При клике пользователя по этому пункту меню будет вызван колбэк виджета “advancedSettings”, в котором виджет может отрисовать все необходимые элементы своих настроек на страницу в элемент с ID “list_page_holder”. Пример кода:

this.callbacks = {
  advancedSettings: function () {
    $('#list_page_holder').html('Настройки виджета здесь');
  }
}