Это старая версия документа.
Уведомления в Web-интерфейсе
Уведомления включены по умолчанию в интерфейсе администратора и клиента.
Для отключения уведомлений в интерфейсе администратора, перейдите в меню Профиль
и поставьте галочку в разделе «События» напротив «Отключено».
Для отключения уведомлений в кабинете пользователя, добавьте в libexec/config.pl
$conf{USER_PORTAL_EVENTS_DISABLED} = 1.
Реализация
Клиентская часть
В клиентской части, приёмом сообщений занимается AMessageChecker, в скрипте messageChecker.js
Этот объект через заданый интервал (по умолчанию, 30 секунд) отправляет запрос на функцию form_events
Результат запроса - JSON масив объектов
При возврате масива ненулевой длины, происходит обработка уведомлений.
На даный момент, поддерживаются типы:
- Сообщение (
«TYPE» : «MESSAGE»
) - Уведомление (
«TYPE» : «EVENT»
) - Обьект карты (
«TYPE» : «MAP_EVENT»
) ( включается только на вкладке с картой )
Формат уведомлений
В зависимости от типа, уведомление имеет следующий вид:
== 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" } }
Групировка уведомлений
События групируются по модулям.
Управление групами.
Администратор может подписаться на групы событий в меню Профиль
.
Отписаться от групы можно или в меню, или нажав на иконку перечеркнутого глаза в заголовке уведомления.
Для некоторых модулей, можно поменять статус уведомления на «Прочитано», кликнув на иконку галочки в заголовке уведомления.