**''Документация по модулю Events перенесена в Confluence''**
[[http://abills.net.ua:8090/display/AB/Events]]
===== Events =====
==== Реализация ====
=== Клиентская часть ===
В клиентской части, приёмом сообщений занимается AMessageChecker, в скрипте ''messageChecker.js''\\
Этот объект через заданый интервал (по умолчанию, 30 секунд) отправляет запрос на функцию ''form_events''\\
Результат запроса - JSON масив объектов
При возврате масива ненулевой длины, происходит обработка уведомлений.\\
На даный момент, поддерживаются типы:
- Сообщение (''"TYPE" : "MESSAGE"'')
- Уведомление (''"TYPE" : "EVENT"'')
- Обьект карты (''"TYPE" : "MAP_EVENT"'') ( включается только на вкладке с картой ). [[abills:docs:development:modules:maps#otobrazhenie_sobytij_na_karte|Формат события]]
=== Формат уведомлений ===
В зависимости от типа, уведомление имеет следующий вид:
**== Message ==**
{
"TYPE" : "MESSAGE",
"TITLE" : "Message Title",
"TEXT" : "This is sample message text",
"MESSAGE_ID" : 23,
"EXTRA" : "https://demo.abills.net.ua:9443/admin/index.cgi",
"SENDER" : { "UID" : 2, "LOGIN" : "testuser" }
}
Все параметры, кроме ''TYPE'', ''TITLE'' и ''TEXT'' являются опциональными. \\
Значение поля ''TEXT'' обрезается до 30 символов.\\
Параметр ''MESSAGE_ID'' служит для создания ссылки для быстрого перехода к сообщению в ''Msgs''\\
Параметр ''EXTRA'' - ссылка, которая будет отображена с тестом "TITLE".\\
Объект ''CLIENT'' отвечает за дополнительную отображаемую информацию о клиенте, к которому относится сообщение.\\
=== Серверная часть ===
Функция ''form_events'' через функцию ''cross_modules_call'', вызывает в каждом модуле функцию с именем ''$Module_events'', и возвращает хеш результатов. При вызове из портала абонента, одним из аргументов передаётся ''CLIENT_INTERFACE => 1''.
Функция ''$Module_events'' должна передавать JSON строку вида:
{
"TYPE" : "MESSAGE",
"TITLE" : "Message Title",
"TEXT" : "This is sample message text",
"MESSAGE_ID" : 23,
"EXTRA" : "https://demo.abills.net.ua:9443/admin/index.cgi",
"CLIENT" : { "UID" : 2, "LOGIN" : "testuser" }
},
{
"TYPE" : "MESSAGE",
"TITLE" : "Message Title",
"TEXT" : "This is sample message text for another message",
"MESSAGE_ID" : 25,
"EXTRA" : "https://demo.abills.net.ua:9443/admin/index.cgi",
"CLIENT" : { "UID" : 8, "LOGIN" : "client" }
}
==== Групировка уведомлений ====
События групируются по модулям.\\
[[abills:docs:manual:admin:events:events_group_main|Управление групами]].\\
Администратор может подписаться на групы событий в меню ''Профиль''.\\
Отписаться от групы можно или в меню, или нажав на иконку перечеркнутого глаза в заголовке уведомления.\\
Для некоторых модулей, можно поменять статус уведомления на "Прочитано", кликнув на иконку галочки в заголовке уведомления. \\