Введение
Под баннером подразумевается интерактивный элемент веб-интерфейса служащий для уведомления или привлечения внимания человека работающего с панелью.
Разработчик может добавлять собственные баннеры (уведомления) при помощи класса Banner, либо используя специальные механизмы предоставляемые CORE.
Описание сообщения
Текст сообщения для баннера должен быть добавлен в секцию описания сообщений для конкретной функции
<messages name="backup.run">
...
<msg name="backup_success">Backup process completed successfully</msg>
</messages>
или в специальную секцию alert
<messages name="alert">
...
<msg name="backup_success">Backup process completed successfully</msg>
</messages>
Если в текст сообщения необходимо подставить какие-либо дополнительные значения или сообщения, то добавляется последовательность вида __name__, где name — это имя параметра.
<msg name="backup_success">Backup process '__name__' completed successfully. Processed __count__ file(s).</msg>
Создание баннера
Теперь, в исходном коде обработчика функции необходимо непосредственно создать сам баннер, например так
...
ses.NewBanner("backup_success", Session::Banner::blInfo).SetParam("__name__", elid).SetParam("__count__", str::Str(files.size()));
...
В результате, в XML-документ ответа будет добавлен баннер в виде следующего блока данных
<doc>
...
<banner id="backup_success" status="3">
<param name="name">example</param>
<param name="count">1024</param>
<msg>Backup process 'example' completed successfully. Processed 1024 file(s).</msg>
</banner>
</doc>
Стоит также отметить, что существует 3 типа баннеров:
- Предупреждение;
- Уведомление;
- Информация.
В описанном выше примере будет создан информационный банер зеленого цвета по завершении операции резервного копирования данных.
Дополнительные возможности
Также, существуют механизмы для автоматического создания баннеров по завершении некоторых действий.
Удачно завершенное действие
Если необходимо постоянно информировать пользователя о каком-либо удачно завершенном действии, то вам нужно описать дополнительное сообщение для соответствующей функции. Данная возможность работает только для функций содержащих в запросе параметр "sok=ok", т.е. для функций требующих заполнение формы с данными. Имя сообщения должно быть равно "msg_success" для формы редактировании данных, либо "msg_success_new" при создании. В сообщении данного баннера может быть использован любой параметр с формы, заключенный в двойные знаки подчеркивания.
Пример:
<messages name="db.edit">
...
<msg name="msg_success_new">Database '__name__' created successfully</msg>
</messages>
Группировка одинаковых баннеров
Если есть сообщение с именем multi_<id баннера> и баннеры не имеют ссылок, то такие баннеры будут объединены в один. В этом баннере макрос _count_ будет заменен на количество объединенных баннеров
Групповые операции
При выполнении групповых операции, таких как: delete, suspend, resume и т.п.; баннер может быть определен как для удачно завершившихся операций, так и для завершившихся с ошибкой. Так как, данный тип операций не имеет собственной формы, все сообщения описываются в специальной секции alert с именами следующего вида:
group*result*_*func*
, где result — это результат выполнения операции и должен быть равен success или fail при удачном или неудачном завершении операции, соответственно; func — это имя функции.
В тексте сообщения можно использовать лишь одну переменную с именем _count_, которая содержит информацию о количестве удачно или неудачно завершившихся операций из группы.
Пример:
<messages name="alert">
...
<msg name="groupfail_restore">Failed to restore data from __count__ backup(s). For more information move your mouse cursor over the error name.</msg>
</messages>