4. Продвинутые уведомления на основе шаблонов

Прежде чем мы начнем, убедитесь, что установлено дополнение Notifications. Если оно еще не установлено, установите его перед продолжением.

В этом разделе вы:

  • Настроите дополнение Notifications.

  • Создадите шаблон в формате Текст с помощью дизайнера шаблонов.

  • Добавите параметры в шаблон.

  • Создадите уведомление, использующее этот шаблон, демонстрируя его практическое применение.

Настройка дополнения Notifications

Подробный пример настройки дополнения Notifications можно найти в разделе Конфигурация. Здесь же мы представим краткий обзор основных шагов.

Выполните следующие действия:

  1. Создайте набор экземпляров NotificationType и зарегистрируйте их через NotificationTypesRepository в вашем главном классе приложения:

    @Autowired
    private NotificationTypesRepository notificationTypesRepository;
    
    @EventListener
    public void onApplicationContextRefreshed(final ContextRefreshedEvent event) {
        notificationTypesRepository.registerTypes(
                new NotificationType("info", "INFO_CIRCLE"),
                new NotificationType("warn", "WARNING")
        );
    }
  2. Добавьте компонент индикатора уведомлений в файл 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.

template notifications details

Добавление параметров шаблона

Перейдите на вкладку Параметры в дизайнере шаблонов. Нажмите кнопку Создать. Укажите следующие данные параметра:

  • Название: Название параметра, которое будет отображаться в форме ввода параметров: Booking.

  • Алиас параметра: Уникальный идентификатор, используемый для ссылки на параметр в шаблоне: booking.

  • Тип: Тип данных параметра. Выберите тип Сущность.

  • Сущность: Выберите сущность Booking, которая будет использоваться в качестве параметра.

template parameter

Нажмите кнопку OK.

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

template notifications params

После того как шаблон настроен, сохраните его.

Создание уведомления

Перейдите в экран Оповещения. Нажмите кнопку Создать оповещение, чтобы начать создание нового уведомления. Настройте уведомление следующим образом:

  • Тема: тема уведомления - Booking information.

  • Тип: тип уведомления, который вы создали ранее в этом разделе. Выберите Info.

  • Получатели: список получателей уведомления. Начните вводить имя пользователя в поле и выберите подходящих пользователей из списка.

  • Установите флажок Использовать шаблон сообщения. Ниже появится поле выбора шаблона.

    notification step 1
  • Нажмите кнопку …​ в поле Шаблон сообщения.

  • Откроется диалоговое окно выбора шаблона сообщения. Выберите ранее созданный шаблон Booking Notification и нажмите кнопку Выбрать.

    notification step 2
  • После этого появится диалоговое окно с запросом на ввод значений для параметров, которые вы ранее определили для шаблона. Заполните необходимые поля соответствующими значениями. Нажмите OK.

    notification step 3
  • После нажатия кнопки OK в диалоговом окне создания оповещения, уведомление будет сохранено и отображено указанному пользователю.

Просмотр уведомления

Войдите в систему как пользователь Mari. Найдите индикатор уведомлений, расположенный в верхнем правом углу главного экрана, и нажмите на него. Появится диалоговое окно In-app оповещения, отображающее список непрочитанных или последних оповещений:

in app notifications

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

in app notification open

Вы заметите, что значения параметров, которые вы указали при создании уведомления, были автоматически вставлены в соответствующие плейсхолдеры внутри шаблона сообщения, персонализируя содержание уведомления.

Резюме

В этом разделе вы успешно:

  • Настроили дополнение Notifications.

  • Создали многократно используемый шаблон сообщения в формате Текст с помощью дизайнера шаблонов.

  • Определили параметры для шаблона сообщения, обеспечив динамическое содержание.

  • Создали и отправили уведомление, использующее шаблон сообщения, продемонстрировав практическое применение расширенных функций уведомлений.