4. Продвинутые уведомления на основе шаблонов
Прежде чем мы начнем, убедитесь, что установлено дополнение Notifications. Если оно еще не установлено, установите его перед продолжением.
В этом разделе вы:
-
Настроите дополнение Notifications.
-
Создадите шаблон в формате
Текст
с помощью дизайнера шаблонов. -
Добавите параметры в шаблон.
-
Создадите уведомление, использующее этот шаблон, демонстрируя его практическое применение.
Настройка дополнения Notifications
Подробный пример настройки дополнения Notifications можно найти в разделе Конфигурация. Здесь же мы представим краткий обзор основных шагов.
Выполните следующие действия:
-
Создайте набор экземпляров
NotificationType
и зарегистрируйте их черезNotificationTypesRepository
в вашем главном классе приложения:@Autowired private NotificationTypesRepository notificationTypesRepository; @EventListener public void onApplicationContextRefreshed(final ContextRefreshedEvent event) { notificationTypesRepository.registerTypes( new NotificationType("info", "INFO_CIRCLE"), new NotificationType("warn", "WARNING") ); }
-
Добавьте компонент индикатора уведомлений в файл
main-view.xml
:<mainView xmlns="http://jmix.io/schema/flowui/main-view" xmlns:ntf="http://jmix.io/schema/notifications/ui" title="msg://MainView.title"> <navigationBar> <header id="header" classNames="jmix-main-view-header"> <drawerToggle id="drawerToggle" classNames="jmix-main-view-drawer-toggle" themeNames="contrast" ariaLabel="msg://drawerToggle.ariaLabel"/> <h1 id="viewTitle" classNames="jmix-main-view-title"/> </header> <ntf:notificationsIndicator id="ntfIndicator" classNames="me-m"/> </navigationBar>
Создание шаблона сообщения
Запустите приложение. Перейдите в экран Шаблоны сообщений. Нажмите кнопку Создать, чтобы начать создание нового шаблона.
После нажатия на кнопку Создать откроется дизайнер шаблонов. Настройте шаблон следующим образом:
-
Название: введите понятное название для шаблона, например,
Booking Notification
. -
Код: установите код шаблона равным
booking-notification
. -
Тип: выберите Plain text в качестве типа шаблона.
-
Содержание: определите содержание шаблона:
Hello ${booking.creator.firstName}! Thank you for booking your date and time for ${booking.title}. Your time starts at ${booking.startDate?datetime} and ends at ${booking.endDate?datetime} The booking took place ${today?date}. The penalty for false is ${penalty?string.currency}. Have a nice day, Developer team. Developer www.jmix.io
Этот шаблон отформатирован с использованием плейсхолдеров и синтаксиса шаблонизатора Apache FreeMarker.

Добавление параметров шаблона
Перейдите на вкладку Параметры в дизайнере шаблонов. Нажмите кнопку Создать. Укажите следующие данные параметра:
-
Название: Название параметра, которое будет отображаться в форме ввода параметров:
Booking
. -
Алиас параметра: Уникальный идентификатор, используемый для ссылки на параметр в шаблоне:
booking
. -
Тип: Тип данных параметра. Выберите тип
Сущность
. -
Сущность: Выберите сущность
Booking
, которая будет использоваться в качестве параметра.

Нажмите кнопку OK.
Создайте параметр Penalty, убедившись, что он настроен как тип Число
. Затем создайте параметр Today и установите для него тип Дата
:

После того как шаблон настроен, сохраните его.
Создание уведомления
Перейдите в экран Оповещения. Нажмите кнопку Создать оповещение, чтобы начать создание нового уведомления. Настройте уведомление следующим образом:
-
Тема: тема уведомления -
Booking information
. -
Тип: тип уведомления, который вы создали ранее в этом разделе. Выберите
Info
. -
Получатели: список получателей уведомления. Начните вводить имя пользователя в поле и выберите подходящих пользователей из списка.
-
Установите флажок Использовать шаблон сообщения. Ниже появится поле выбора шаблона.
-
Нажмите кнопку … в поле Шаблон сообщения.
-
Откроется диалоговое окно выбора шаблона сообщения. Выберите ранее созданный шаблон
Booking Notification
и нажмите кнопку Выбрать. -
После этого появится диалоговое окно с запросом на ввод значений для параметров, которые вы ранее определили для шаблона. Заполните необходимые поля соответствующими значениями. Нажмите OK.
-
После нажатия кнопки OK в диалоговом окне создания оповещения, уведомление будет сохранено и отображено указанному пользователю.
Просмотр уведомления
Войдите в систему как пользователь Mari
. Найдите индикатор уведомлений, расположенный в верхнем правом углу главного экрана, и нажмите на него. Появится диалоговое окно In-app оповещения, отображающее список непрочитанных или последних оповещений:

Дважды щелкните по уведомлению, чтобы просмотреть его полное содержание:

Вы заметите, что значения параметров, которые вы указали при создании уведомления, были автоматически вставлены в соответствующие плейсхолдеры внутри шаблона сообщения, персонализируя содержание уведомления.
Резюме
В этом разделе вы успешно:
-
Настроили дополнение Notifications.
-
Создали многократно используемый шаблон сообщения в формате
Текст
с помощью дизайнера шаблонов. -
Определили параметры для шаблона сообщения, обеспечив динамическое содержание.
-
Создали и отправили уведомление, использующее шаблон сообщения, продемонстрировав практическое применение расширенных функций уведомлений.