# JS события

Для работы плагинов иногда требуется отловить некоторые события. Для этого, в настоящий момент, существует 2 события, которые можно обрабатывать через подключенные JavaScript:

1. **ShowModal** - срабатывает после показа модального окна:
    * формы Клиента, Контакта, Сделки, Обращения, обработки Заявки
    * просмотр Клиента, Контакта, Сделки
2. **CardLoad** - срабатывает после загрузки какого-либо блока карточки
    * Клиента,
    * Контакта,
    * Сделки,
    * Обсуждения

## Подписка на событие "ShowModal"
<pre><code class="js">
$(document).ready(function() {
   ShowModal.subscribe(function (eventArgs) {
     //eventArgs.etype - тип формы
     //eventArgs.action - тип события
   });
});
</code></pre>

## Существующие типы форм (eventArgs.etype):

* **expressClient** - экспресс-форма, в этом случае eventArgs.action = null
* **clientForm** - формы, связанные с Клиентом
* **dealForm** - формы, связанные со Сделкой
* **personForm** - формы, связанные с Контактом
* **editEntry** - форма, связанная с добавлением Обращения
* **statusEntry** - форма, связанная с обработкой Обращения
* **editLead** - форма, связанная с редактированием Заявки
* **workitLead** - форма, связанная с обработкой Заявки
* **taskForm** - форма, связанная с обработкой Напоминаний
* **historyForm** - форма, связанная с обработкой Активностей
* **spekaForm** - форма, связанная с обработкой Спецификации

При этом (кроме expressClient) передается доп.параметр: eventArgs.action = производимая операция

**Пример применения:**

* [плагин "Скрипты продаж"](https://salesman.pro/docs/121) - показ блока для загрузки скриптов из HyperScript
* [плагин "Отправка СМС"](https://salesman.pro/docs/129) - добавление кнопки отправки СМС

## Подписка на событие "CardLoad"

<pre><code class="js">
$(document).ready(function() {
   CardLoad.subscribe(function (eventArgs) {
     //eventArgs.etype - тип карточки
   });
});
</code></pre>

<br>
## Существующие типы карточек (eventArgs.etype):

* **clientCard** - карточка Клиента
* **dealCard** - карточка Сделки
* **personCard** - карточка Контакта
* **commentCardTheme** - карточка Обсуждения, блок Тема
* **commentCardComments** - карточка Обсуждения, блок Комментариев

## Подключение своих js-скриптов

Подключение своих js-скриптов возможно в виде [плагина](#plugins) со следующими нюансами:

* регистрация параметров плагина в файле **/plugins/map.castom.json**
* параметр "interface" = "no", т.е. указываем, что плагин не обладает интерфейсом
* в параметре "js" указываем адрес расположения вашего скрипта
* подписываемся на необходимые события
