В маркетплейсе интеграций при клике на виджет открывается модальное окно с настройками. При открытии этого окна система отрисует поля, которые перечислены в разделе settings файла manifest.json.
Если вы хотите кастомизировать внешний вид данного окна, для этого есть колбэк settings.
define(['jquery'], function ($) {
return function () {
this.callbacks = {
settings: function ($settings_body, context) {
// ...
}
};
};
});
Колбэк settings
принимает два аргумента. Первый $settings_body
– jQuery-элемент, в котором рисуется форма настроек виджета. Второй context
– объект, в который могут быть переданы дополнительные параметры в зависимости от того, откуда был вызван показ модального окна настроек виджета.
Если ваш виджет реализует функционал источника сделок и выводится в колонке источников слева в разделе Digital Pipeline, то при клике на такой установленный виджет в context
придут следующие данные:
{
source_id: 12345, // id источника на стороне amoCRM
external_id: 761527839 // id источника на стороне интеграции
}
❗️ Важно ❗️
Публичные виджеты не должны никак скрывать/влиять на рейтинг и отзывы виджета.
Для всех виджетов, которые загружены в интеграции, запрещены виртуальные клики на кнопку установить.
Также для того, чтобы виджет мог установиться в аккаунт пользователю в нем должен обязательно присутствовать метод 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('Настройки виджета здесь');
}
}