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.

  • Тип: выберите тип Текст.

  • Содержимое: задайте содержимое шаблона:

    Hello ${booking.creator.firstName!"Guest"}!
    
    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}.
    
    Have a nice day,
    Developer team.
    
    Developer
    www.jmix.io

Этот шаблон использует плейсхолдеры и синтаксис шаблонизатора Apache FreeMarker.

template notifications details

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

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

  1. Booking

    • Имя: Booking

    • Алиас: booking

    • Тип: Entity

    • Сущность: Booking

  2. Today

    • Имя: Today

    • Алиас: today

    • Тип: Date

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

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

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

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

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

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

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

  • Введите значения параметров.

    notification step 3
  • Нажмите ОК. После этого уведомление будет сохранено и показано указанному пользователю.

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

Войдите в систему как пользователь Mari.

Обратите внимание: чтобы просматривать уведомления, пользователь Mari должен иметь одну из следующих ролей:

  • Notifications: In-app notifications reader

  • Notifications: combines sender and reader

  • Notifications: administrator

Найдите индикатор уведомлений в правом верхнем углу главного экрана и откройте уведомление, чтобы просмотреть его содержимое:

in app notification open

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