# 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" указываем адрес расположения вашего скрипта
*     подписываемся на необходимые события
