Добрый день!
Вопрос по дополнению Notifications. Jmix 2.4.0.
Не смог воспользоваться допонением, чтобы вручную создавать уведомления с отправкой на email.
После анализа исходных кодов дополнения, выяснил, что канал для отправки уведомлений EmailNotificationChannel создается, но в дополнении реализовано так, что всегда по умолчанию устанавливается канал InAppNotificationChannel и переключить его невозможно. Исправить это можно только переписав дополнение.
Посмотрел версии 2.2.0 и 2.5.1, там тоже самое.
Планируется ли когда-нибудь в будущем доработка этого дополнения, чтобы в нем можно было создавать сообщения и отправлять на email?
Добрый день!
Экран из аддона Notifications работает только с In-app уведомлениями. Чтобы отправить уведомление с каналом Email, нужно использовать CreateNotificationAction
. Он откроет диалог создания уведомления со всеми доступными опциями.
Например:
<view xmlns="http://jmix.io/schema/flowui/view">
<actions>
...
<action id="createNotificationAction" type="ntf_createNotification"/>
</actions>
<layout>
<button id="sendNotificationButton" action="createNotificationAction"/>
</layout>
</view>
Я создал задачу, чтобы добавить пример в документацию: Add an example of Email sending to Notifications add-on · Issue #1004 · jmix-framework/jmix-docs · GitHub
Получается вызывать этот action нужно не из экрана дополнения InAppNotificationListView, а из какого то своего.
Понял, спасибо!
Добрый день, Артём!
Мы переосмыслили данное поведение и создали задачу, чтобы создавать оповещения с любым каналом прямо из экрана: Unable to create notification for any channel besides In-app using OOB notifications view · Issue #4439 · jmix-framework/jmix · GitHub.
Текущее поведение фактически является ошибкой, поэтому исправление будет доступно уже в ближайшем багфикс-релизе (2.5.2).
Спасибо, что поделились проблемой!
Добрый день, Роман!
Это хорошо. Тогда заодно исправьте и другую проблему, я ее у нас проекте уже поправил, но все же расскажу.
Когда создаешь шаблон сообщения с помощью аддона Message Template или просто в коде, то потом пользователь при просмотре видит такую картину
вместо красивого форматированного html отображения
Я посмотрел, там в методе createReadNotificationDialog() нет проверки на ContentType сообщения и все запихивается в TextArea. Этот метод тоже пришлось переписать и добавить проверку:
if (reloadedNotification.getContentType().equals(ContentType.PLAIN.getValue())) {
TextArea textArea = new TextArea();
textArea.setValue(reloadedNotification.getBody());
textArea.setReadOnly(true);
textArea.setSizeFull();
layout.add(textArea, actionsLayout);
} else {
Html html = new Html(reloadedNotification.getBody());
Span span = new Span();
span.setSizeFull();
layout.add(html, span, actionsLayout);
}
Но конечно в интерфейсе при редактировании шаблонного сообщения, которое уже было сгенерировано и отправлено, все равно xml формат в текcтовом поле отрисовывается, но тут уже сами смотрите, так оставить или придумать чего, лично мне тут не принципиально)
На эту проблему есть задача - Support HTML content type in IN-APP notifications · Issue #2922 · jmix-framework/jmix · GitHub.
Если есть возможность, пожалуйста, оставьте комментарий или реакцию, чтобы мы смогли повысить его приоритет.