From 43026449794979f977f06bbb3123fddfd47096a7 Mon Sep 17 00:00:00 2001 From: Richard Ogin Date: Mon, 21 Apr 2025 11:45:41 -0500 Subject: [PATCH] add two vars to the alert template variable list Signed-off-by: Richard Ogin --- .../ui/alert/DefaultAlertEditPanel.java | 6 +++-- .../com/mirth/connect/server/alert/Alert.java | 22 +++++++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/client/src/com/mirth/connect/client/ui/alert/DefaultAlertEditPanel.java b/client/src/com/mirth/connect/client/ui/alert/DefaultAlertEditPanel.java index 575815ab50..b608fe3892 100644 --- a/client/src/com/mirth/connect/client/ui/alert/DefaultAlertEditPanel.java +++ b/client/src/com/mirth/connect/client/ui/alert/DefaultAlertEditPanel.java @@ -18,8 +18,6 @@ import javax.swing.JLabel; import javax.swing.JPanel; -import net.miginfocom.swing.MigLayout; - import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -35,6 +33,8 @@ import com.mirth.connect.model.alert.ChannelTrigger; import com.mirth.connect.model.alert.DefaultTrigger; +import net.miginfocom.swing.MigLayout; + public class DefaultAlertEditPanel extends AlertEditPanel { private Frame parent; @@ -105,6 +105,8 @@ public void updateVariableList() { variables.add("alertId"); variables.add("alertName"); variables.add("serverId"); + variables.add("serverName"); + variables.add("environmentName"); variables.add("globalMapVariable"); variables.add("date"); diff --git a/server/src/com/mirth/connect/server/alert/Alert.java b/server/src/com/mirth/connect/server/alert/Alert.java index 2b60cdfd14..2a7141e252 100644 --- a/server/src/com/mirth/connect/server/alert/Alert.java +++ b/server/src/com/mirth/connect/server/alert/Alert.java @@ -9,16 +9,24 @@ package com.mirth.connect.server.alert; +import static java.util.Map.entry; + import java.util.HashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; +import org.apache.commons.lang3.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.velocity.tools.generic.DateTool; +import com.mirth.connect.client.core.ControllerException; +import com.mirth.connect.model.ServerSettings; import com.mirth.connect.model.alert.AlertModel; import com.mirth.connect.server.controllers.ConfigurationController; public class Alert { + private Logger logger = LogManager.getLogger(this.getClass()); private AlertModel model; private Long enabledDateTime; @@ -56,11 +64,25 @@ public Map createContext() { context.put("alertId", model.getId()); context.put("alertName", model.getName()); context.put("serverId", ConfigurationController.getInstance().getServerId()); + context.putAll(getServerSettings()); context.put("date", new DateTool()); return context; } + private Map getServerSettings() { + try { + ServerSettings settings = ConfigurationController.getInstance().getServerSettings(); + // ensure an empty string as Velocity won't replace when given a null value + return Map.ofEntries(entry("serverName", StringUtils.defaultString(settings.getServerName())), + entry("environmentName", StringUtils.defaultString(settings.getEnvironmentName()))); + } catch (ControllerException e) { + logger.warn("Failed to retrieve server settings", e); + } + + return Map.of(); + } + public int getAlertedCount() { return alertedCount.get(); }