From a878cae3957d85c02a10d67d0a0032ac918578ef Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Tue, 27 Jan 2026 19:53:38 +0100 Subject: [PATCH] added hint on notification settings to combined message Signed-off-by: Stephan Richter --- .../umbrella/message/MessageSystem.java | 2 ++ .../message/model/CombinedMessage.java | 26 ++++++++++++------- translations/src/main/resources/de.json | 1 + translations/src/main/resources/en.json | 1 + 4 files changed, 21 insertions(+), 9 deletions(-) diff --git a/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java b/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java index 1a42cb94..7236ff0b 100644 --- a/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java +++ b/messages/src/main/java/de/srsoftware/umbrella/message/MessageSystem.java @@ -225,6 +225,8 @@ public class MessageSystem extends BaseHandler implements PostBox, EventListener try { var envelopes = queue.getEnvelopesFor(receiver); envelopes.stream().map(Envelope::message).forEach(combined::merge); + if (receiver instanceof UmbrellaUser) combined.addNote(); + send(combined,date); envelopes.forEach(env -> queue.markRead(env.id(),receiver)); } catch (Exception ex){ diff --git a/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java b/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java index 67d72d6d..7a17e043 100644 --- a/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java +++ b/messages/src/main/java/de/srsoftware/umbrella/message/model/CombinedMessage.java @@ -1,7 +1,9 @@ /* © SRSoftware 2025 */ package de.srsoftware.umbrella.message.model; +import static de.srsoftware.umbrella.core.ModuleRegistry.translator; import static de.srsoftware.umbrella.core.Util.dateTimeOf; +import static de.srsoftware.umbrella.core.model.Translatable.t; import static java.lang.System.Logger.Level.DEBUG; import static java.lang.System.Logger.Level.TRACE; import static java.text.MessageFormat.format; @@ -20,6 +22,7 @@ public class CombinedMessage { private final List> mergedMessages = new ArrayList<>(); private final Translatable subjectForCombinedMessage; private UmbrellaUser sender = null; + public static final String SEPARATOR = "\n\n━━━━━━━━━━━━━━━━━━━━━\n\n"; public CombinedMessage(Translatable subjectForCombinedMessage, User receiver){ LOG.log(DEBUG,"Creating combined message for {0}…",receiver); @@ -28,6 +31,19 @@ public class CombinedMessage { this.lang = receiver.language(); } + public void addNote() { + var text = translator().translate(lang,"You may change your notification settings at {base_url}/message/settings"); + combinedBody.append(SEPARATOR).append(text); + } + + public Set attachments() { + return attachments; + } + + public String body() { + return combinedBody.toString(); + } + public void merge(Message message) { LOG.log(TRACE,"Merging {0} into combined message…",message); @@ -45,21 +61,13 @@ public class CombinedMessage { combinedSubject = subjectForCombinedMessage.translate(lang); // no break here, we need to append the subject and content default: - combinedBody.append("\n\n━━━━━━━━━━━━━━━━━━━━━\n\n# ").append(message.sender()).append(" @ ").append(dateTimeOf(message.utcTime())).append("\n→ ").append(subject).append(":\n\n"); + combinedBody.append(SEPARATOR).append("# ").append(message.sender()).append(" @ ").append(dateTimeOf(message.utcTime())).append("\n→ ").append(subject).append(":\n\n"); combinedBody.append(body); } if (message.attachments() != null) attachments.addAll(message.attachments()); mergedMessages.add(message); } - public Set attachments() { - return attachments; - } - - public String body() { - return combinedBody.toString(); - } - public List> messages() { return mergedMessages; } diff --git a/translations/src/main/resources/de.json b/translations/src/main/resources/de.json index 0f5143e0..90a55aaf 100644 --- a/translations/src/main/resources/de.json +++ b/translations/src/main/resources/de.json @@ -431,6 +431,7 @@ "You can view/edit this task at {base_url}/task/{id}/view": "Du kannst diese Aufgabe unter {base_url}/task/{id}/view ansehen/bearbeiten.", "You can view/edit this wiki page at {base_url}/wiki/{id}/view": "Du kannst diese Wiki-Seite unter {base_url}/wiki/{id}/view ansehen/bearbeiten.", "You have been added to the new project '{project}', created by {user}:\n\n{body}": "Du wurdest zum neuen Projekt '{project}', angelegt von {user}, hinzugefügt:\n\n{body}", + "You may change your notification settings at {base_url}/message/settings": "Du kannst deine Benachrichtigungseinstellungen unter {base_url}/message/settings ändern.", "Your token to create a new password" : "Ihr Token zum Erstellen eines neuen Passworts", "your_profile": "dein Profil" } diff --git a/translations/src/main/resources/en.json b/translations/src/main/resources/en.json index b743ba9c..5db18341 100644 --- a/translations/src/main/resources/en.json +++ b/translations/src/main/resources/en.json @@ -431,6 +431,7 @@ "You can view/edit this task at {base_url}/task/{id}/view": "You can view/edit this task at {base_url}/task/{id}/view", "You can view/edit this wiki page at {base_url}/wiki/{id}/view": "You can view/edit this wiki page at {base_url}/wiki/{id}/view", "You have been added to the new project '{project}', created by {user}:\n\n{body}": "You have been added to the new project '{project}', created by {user}:\n\n{body}", + "You may change your notification settings at {base_url}/message/settings": "You may change your notification settings at {base_url}/message/settings .", "Your token to create a new password" : "Your token to create a new password", "your_profile": "your profile" }