aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/org/traccar/api/resource/PasswordResource.java6
-rw-r--r--src/main/java/org/traccar/notification/NotificationFormatter.java9
-rw-r--r--src/main/java/org/traccar/notification/NotificationMessage.java (renamed from src/main/java/org/traccar/notification/FullMessage.java)4
-rw-r--r--src/main/java/org/traccar/notification/ShortMessage.java36
-rw-r--r--src/main/java/org/traccar/notification/TextTemplateFormatter.java17
-rw-r--r--src/main/java/org/traccar/notificators/NotificatorFirebase.java7
-rw-r--r--src/main/java/org/traccar/notificators/NotificatorMail.java6
-rw-r--r--src/main/java/org/traccar/notificators/NotificatorPushover.java6
-rw-r--r--src/main/java/org/traccar/notificators/NotificatorSms.java6
-rw-r--r--src/main/java/org/traccar/notificators/NotificatorTelegram.java4
-rw-r--r--templates/short/alarm.vm2
-rw-r--r--templates/short/commandResult.vm2
-rw-r--r--templates/short/deviceFuelDrop.vm2
-rw-r--r--templates/short/deviceInactive.vm2
-rw-r--r--templates/short/deviceMoving.vm2
-rw-r--r--templates/short/deviceOffline.vm2
-rw-r--r--templates/short/deviceOnline.vm2
-rw-r--r--templates/short/deviceOverspeed.vm2
-rw-r--r--templates/short/deviceStopped.vm2
-rw-r--r--templates/short/deviceUnknown.vm2
-rw-r--r--templates/short/driverChanged.vm2
-rw-r--r--templates/short/geofenceEnter.vm2
-rw-r--r--templates/short/geofenceExit.vm2
-rw-r--r--templates/short/ignitionOff.vm2
-rw-r--r--templates/short/ignitionOn.vm2
-rw-r--r--templates/short/maintenance.vm2
-rw-r--r--templates/short/test.vm2
-rw-r--r--templates/short/textMessage.vm2
-rw-r--r--templates/short/unknown.vm2
29 files changed, 43 insertions, 96 deletions
diff --git a/src/main/java/org/traccar/api/resource/PasswordResource.java b/src/main/java/org/traccar/api/resource/PasswordResource.java
index 20e8d768d..74cb7ca34 100644
--- a/src/main/java/org/traccar/api/resource/PasswordResource.java
+++ b/src/main/java/org/traccar/api/resource/PasswordResource.java
@@ -19,7 +19,7 @@ import org.apache.velocity.VelocityContext;
import org.traccar.Context;
import org.traccar.api.BaseResource;
import org.traccar.model.User;
-import org.traccar.notification.FullMessage;
+import org.traccar.notification.NotificationMessage;
import org.traccar.notification.TextTemplateFormatter;
import javax.annotation.security.PermitAll;
@@ -53,8 +53,8 @@ public class PasswordResource extends BaseResource {
Context.getUsersManager().updateItem(user);
VelocityContext velocityContext = TextTemplateFormatter.prepareContext(null);
velocityContext.put("token", token);
- FullMessage message = TextTemplateFormatter.formatFullMessage(velocityContext, "passwordReset");
- Context.getMailManager().sendMessage(userId, message.getSubject(), message.getBody());
+ NotificationMessage fullMessage = TextTemplateFormatter.formatMessage(velocityContext, "passwordReset","full");
+ Context.getMailManager().sendMessage(userId, fullMessage.getSubject(), fullMessage.getBody());
break;
}
}
diff --git a/src/main/java/org/traccar/notification/NotificationFormatter.java b/src/main/java/org/traccar/notification/NotificationFormatter.java
index f33961c8b..9a6723a71 100644
--- a/src/main/java/org/traccar/notification/NotificationFormatter.java
+++ b/src/main/java/org/traccar/notification/NotificationFormatter.java
@@ -58,14 +58,9 @@ public final class NotificationFormatter {
return velocityContext;
}
- public static FullMessage formatFullMessage(long userId, Event event, Position position) {
+ public static NotificationMessage formatMessage(long userId, Event event, Position position, String templatePath) {
VelocityContext velocityContext = prepareContext(userId, event, position);
- return TextTemplateFormatter.formatFullMessage(velocityContext, event.getType());
- }
-
- public static ShortMessage formatShortMessage(long userId, Event event, Position position) {
- VelocityContext velocityContext = prepareContext(userId, event, position);
- return TextTemplateFormatter.formatShortMessage(velocityContext, event.getType());
+ return TextTemplateFormatter.formatMessage(velocityContext, event.getType(), templatePath);
}
}
diff --git a/src/main/java/org/traccar/notification/FullMessage.java b/src/main/java/org/traccar/notification/NotificationMessage.java
index f66537c6e..0fb8d7654 100644
--- a/src/main/java/org/traccar/notification/FullMessage.java
+++ b/src/main/java/org/traccar/notification/NotificationMessage.java
@@ -16,12 +16,12 @@
*/
package org.traccar.notification;
-public class FullMessage {
+public class NotificationMessage {
private String subject;
private String body;
- public FullMessage(String subject, String body) {
+ public NotificationMessage(String subject, String body) {
this.subject = subject;
this.body = body;
}
diff --git a/src/main/java/org/traccar/notification/ShortMessage.java b/src/main/java/org/traccar/notification/ShortMessage.java
deleted file mode 100644
index 28812a1f1..000000000
--- a/src/main/java/org/traccar/notification/ShortMessage.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2016 Anton Tananaev (anton@traccar.org)
- * Copyright 2016 Andrey Kunitsyn (andrey@traccar.org)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.traccar.notification;
-
-public class ShortMessage {
-
- private String title;
- private String body;
-
- public ShortMessage(String title, String body) {
- this.title = title;
- this.body = body;
- }
-
- public String getTitle() {
- return title;
- }
-
- public String getBody() {
- return body;
- }
-}
diff --git a/src/main/java/org/traccar/notification/TextTemplateFormatter.java b/src/main/java/org/traccar/notification/TextTemplateFormatter.java
index 8a4d35677..6a95628f0 100644
--- a/src/main/java/org/traccar/notification/TextTemplateFormatter.java
+++ b/src/main/java/org/traccar/notification/TextTemplateFormatter.java
@@ -71,22 +71,11 @@ public final class TextTemplateFormatter {
return template;
}
- public static FullMessage formatFullMessage(VelocityContext velocityContext, String name) {
- String formattedMessage = formatMessage(velocityContext, name, "full");
- return new FullMessage((String) velocityContext.get("subject"), formattedMessage);
- }
-
- public static ShortMessage formatShortMessage(VelocityContext velocityContext, String name) {
- String formattedMessage = formatMessage(velocityContext, name, "short");
- return new ShortMessage((String) velocityContext.get("title"), formattedMessage);
- }
-
- private static String formatMessage(
- VelocityContext velocityContext, String name, String templatePath) {
-
+ public static NotificationMessage formatMessage(VelocityContext velocityContext, String name, String templatePath) {
StringWriter writer = new StringWriter();
getTemplate(name, templatePath).merge(velocityContext, writer);
- return writer.toString();
+ String formattedMessage = writer.toString();
+ return new NotificationMessage((String) velocityContext.get("subject"), formattedMessage);
}
}
diff --git a/src/main/java/org/traccar/notificators/NotificatorFirebase.java b/src/main/java/org/traccar/notificators/NotificatorFirebase.java
index 9d1982f9c..37d0cb25a 100644
--- a/src/main/java/org/traccar/notificators/NotificatorFirebase.java
+++ b/src/main/java/org/traccar/notificators/NotificatorFirebase.java
@@ -24,9 +24,8 @@ import org.traccar.config.Keys;
import org.traccar.model.Event;
import org.traccar.model.Position;
import org.traccar.model.User;
-import org.traccar.notification.FullMessage;
+import org.traccar.notification.NotificationMessage;
import org.traccar.notification.NotificationFormatter;
-import org.traccar.notification.ShortMessage;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.InvocationCallback;
@@ -70,10 +69,10 @@ public class NotificatorFirebase extends Notificator {
final User user = Context.getPermissionsManager().getUser(userId);
if (user.getAttributes().containsKey("notificationTokens")) {
- ShortMessage shortMessage = NotificationFormatter.formatShortMessage(userId, event, position);
+ NotificationMessage shortMessage = NotificationFormatter.formatMessage(userId, event, position,"short");
Notification notification = new Notification();
- notification.title= shortMessage.getTitle();
+ notification.title= shortMessage.getSubject();
notification.body = shortMessage.getBody();
notification.sound = "default";
diff --git a/src/main/java/org/traccar/notificators/NotificatorMail.java b/src/main/java/org/traccar/notificators/NotificatorMail.java
index 6b9774c58..48e9d2311 100644
--- a/src/main/java/org/traccar/notificators/NotificatorMail.java
+++ b/src/main/java/org/traccar/notificators/NotificatorMail.java
@@ -19,7 +19,7 @@ package org.traccar.notificators;
import org.traccar.Context;
import org.traccar.model.Event;
import org.traccar.model.Position;
-import org.traccar.notification.FullMessage;
+import org.traccar.notification.NotificationMessage;
import org.traccar.notification.MessageException;
import org.traccar.notification.NotificationFormatter;
@@ -30,8 +30,8 @@ public final class NotificatorMail extends Notificator {
@Override
public void sendSync(long userId, Event event, Position position) throws MessageException {
try {
- FullMessage message = NotificationFormatter.formatFullMessage(userId, event, position);
- Context.getMailManager().sendMessage(userId, message.getSubject(), message.getBody());
+ NotificationMessage fullMessage = NotificationFormatter.formatMessage(userId, event, position,"full");
+ Context.getMailManager().sendMessage(userId, fullMessage.getSubject(), fullMessage.getBody());
} catch (MessagingException e) {
throw new MessageException(e);
}
diff --git a/src/main/java/org/traccar/notificators/NotificatorPushover.java b/src/main/java/org/traccar/notificators/NotificatorPushover.java
index e541ea525..b62be7654 100644
--- a/src/main/java/org/traccar/notificators/NotificatorPushover.java
+++ b/src/main/java/org/traccar/notificators/NotificatorPushover.java
@@ -24,7 +24,7 @@ import org.traccar.model.Event;
import org.traccar.model.Position;
import org.traccar.model.User;
import org.traccar.notification.NotificationFormatter;
-import org.traccar.notification.ShortMessage;
+import org.traccar.notification.NotificationMessage;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.InvocationCallback;
@@ -77,13 +77,13 @@ public class NotificatorPushover extends Notificator {
return;
}
- ShortMessage shortMessage = NotificationFormatter.formatShortMessage(userId, event, position);
+ NotificationMessage shortMessage = NotificationFormatter.formatMessage(userId, event, position,"short");
Message message = new Message();
message.token = token;
message.user = this.user;
message.device = device;
- message.title= shortMessage.getTitle();
+ message.title= shortMessage.getSubject();
message.message = shortMessage.getBody();
Context.getClient().target(url).request()
diff --git a/src/main/java/org/traccar/notificators/NotificatorSms.java b/src/main/java/org/traccar/notificators/NotificatorSms.java
index 360eb44ff..c99b555ce 100644
--- a/src/main/java/org/traccar/notificators/NotificatorSms.java
+++ b/src/main/java/org/traccar/notificators/NotificatorSms.java
@@ -24,7 +24,7 @@ import org.traccar.model.Position;
import org.traccar.model.User;
import org.traccar.notification.MessageException;
import org.traccar.notification.NotificationFormatter;
-import org.traccar.notification.ShortMessage;
+import org.traccar.notification.NotificationMessage;
public final class NotificatorSms extends Notificator {
@@ -32,7 +32,7 @@ public final class NotificatorSms extends Notificator {
public void sendAsync(long userId, Event event, Position position) {
final User user = Context.getPermissionsManager().getUser(userId);
if (user.getPhone() != null) {
- ShortMessage shortMessage = NotificationFormatter.formatShortMessage(userId, event, position);
+ NotificationMessage shortMessage = NotificationFormatter.formatMessage(userId, event, position,"short");
Main.getInjector().getInstance(StatisticsManager.class).registerSms();
Context.getSmsManager().sendMessageAsync(user.getPhone(),
shortMessage.getBody(), false);
@@ -43,7 +43,7 @@ public final class NotificatorSms extends Notificator {
public void sendSync(long userId, Event event, Position position) throws MessageException, InterruptedException {
final User user = Context.getPermissionsManager().getUser(userId);
if (user.getPhone() != null) {
- ShortMessage shortMessage = NotificationFormatter.formatShortMessage(userId, event, position);
+ NotificationMessage shortMessage = NotificationFormatter.formatMessage(userId, event, position,"short");
Main.getInjector().getInstance(StatisticsManager.class).registerSms();
Context.getSmsManager().sendMessageSync(user.getPhone(),
shortMessage.getBody(), false);
diff --git a/src/main/java/org/traccar/notificators/NotificatorTelegram.java b/src/main/java/org/traccar/notificators/NotificatorTelegram.java
index a8cdacfbf..62a5a14ff 100644
--- a/src/main/java/org/traccar/notificators/NotificatorTelegram.java
+++ b/src/main/java/org/traccar/notificators/NotificatorTelegram.java
@@ -25,7 +25,7 @@ import org.traccar.config.Keys;
import org.traccar.model.Event;
import org.traccar.model.Position;
import org.traccar.notification.NotificationFormatter;
-import org.traccar.notification.ShortMessage;
+import org.traccar.notification.NotificationMessage;
import javax.ws.rs.client.Entity;
import javax.ws.rs.client.InvocationCallback;
@@ -99,7 +99,7 @@ public class NotificatorTelegram extends Notificator {
@Override
public void sendSync(long userId, Event event, Position position) {
User user = Context.getPermissionsManager().getUser(userId);
- ShortMessage shortMessage = NotificationFormatter.formatShortMessage(userId, event, position);
+ NotificationMessage shortMessage = NotificationFormatter.formatMessage(userId, event, position,"short");
TextMessage message = new TextMessage();
message.chatId = user.getString("telegramChatId");
diff --git a/templates/short/alarm.vm b/templates/short/alarm.vm
index faab92291..15970dab8 100644
--- a/templates/short/alarm.vm
+++ b/templates/short/alarm.vm
@@ -1,2 +1,2 @@
-#set($title = "Alarm")
+#set($subject = "$device.name: alarm!")
$device.name alarm: $position.getString("alarm") at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/commandResult.vm b/templates/short/commandResult.vm
index 7b3986573..6dc7a5dec 100644
--- a/templates/short/commandResult.vm
+++ b/templates/short/commandResult.vm
@@ -1,2 +1,2 @@
-#set($title = "Command Result")
+#set($subject = "$device.name: command result received")
$device.name command result received: $position.getString("result") at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/deviceFuelDrop.vm b/templates/short/deviceFuelDrop.vm
index 2a4d2c608..babe14351 100644
--- a/templates/short/deviceFuelDrop.vm
+++ b/templates/short/deviceFuelDrop.vm
@@ -1,2 +1,2 @@
-#set($title = "Fuel Drop")
+#set($subject = "$device.name: fuel drop")
$device.name fuel drop at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/deviceInactive.vm b/templates/short/deviceInactive.vm
index f701ba408..c293bf1b2 100644
--- a/templates/short/deviceInactive.vm
+++ b/templates/short/deviceInactive.vm
@@ -1,4 +1,4 @@
-#set($title = "Inactive")
+#set($subject = "$device.name: inactive")
#set($lastUpdate = $dateTool.getDate())
#set($ignore = $lastUpdate.setTime($event.getLong("lastUpdate")))
$device.name inactive from $dateTool.format("YYYY-MM-dd HH:mm:ss", $lastUpdate, $locale, $timezone)
diff --git a/templates/short/deviceMoving.vm b/templates/short/deviceMoving.vm
index 3307326d6..bf6aec340 100644
--- a/templates/short/deviceMoving.vm
+++ b/templates/short/deviceMoving.vm
@@ -1,2 +1,2 @@
-#set($title = "Moving")
+#set($subject = "$device.name: moving")
$device.name moving at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/deviceOffline.vm b/templates/short/deviceOffline.vm
index 1967970b3..e663812ab 100644
--- a/templates/short/deviceOffline.vm
+++ b/templates/short/deviceOffline.vm
@@ -1,2 +1,2 @@
-#set($title = "Offline")
+#set($subject = "$device.name: offline")
$device.name offline at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/deviceOnline.vm b/templates/short/deviceOnline.vm
index 65a59a8b3..bf3b40096 100644
--- a/templates/short/deviceOnline.vm
+++ b/templates/short/deviceOnline.vm
@@ -1,2 +1,2 @@
-#set($title = "Online")
+#set($subject = "$device.name: online")
$device.name online at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/deviceOverspeed.vm b/templates/short/deviceOverspeed.vm
index fa4d7b189..849c6ddb7 100644
--- a/templates/short/deviceOverspeed.vm
+++ b/templates/short/deviceOverspeed.vm
@@ -1,3 +1,4 @@
+#set($subject = "$device.name: exceeds the speed")
#if($speedUnit == 'kmh')
#set($speedValue = $position.speed * 1.852)
#set($speedString = $numberTool.format("0.0 km/h", $speedValue))
@@ -7,5 +8,4 @@
#else
#set($speedString = $numberTool.format("0.0 kn", $position.speed))
#end
-#set($title = "Overspeed")
$device.name exceeds the speed $speedString#{if}($geofence) in $geofence.name#{else}#{end} at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/deviceStopped.vm b/templates/short/deviceStopped.vm
index 42147782b..8fabf89f1 100644
--- a/templates/short/deviceStopped.vm
+++ b/templates/short/deviceStopped.vm
@@ -1,2 +1,2 @@
-#set($title = "Stopped")
+#set($subject = "$device.name: stopped")
$device.name stopped at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/deviceUnknown.vm b/templates/short/deviceUnknown.vm
index b0fd2c42d..b6a6e9c9f 100644
--- a/templates/short/deviceUnknown.vm
+++ b/templates/short/deviceUnknown.vm
@@ -1,2 +1,2 @@
-#set($title = "Status unknown")
+#set($subject = "$device.name: status is unknown")
$device.name status is unknown at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/driverChanged.vm b/templates/short/driverChanged.vm
index fc9a6689e..df96b00a1 100644
--- a/templates/short/driverChanged.vm
+++ b/templates/short/driverChanged.vm
@@ -1,7 +1,7 @@
+#set($subject = "$device.name: driver has changed")
#if($driver)
#set($driverName = $driver.name)
#else
#set($driverName = $event.getString("driverUniqueId"))
#end
-#set($title = "Driver changed")
Driver $driverName has changed in $device.name at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/geofenceEnter.vm b/templates/short/geofenceEnter.vm
index 79736b096..8c250665e 100644
--- a/templates/short/geofenceEnter.vm
+++ b/templates/short/geofenceEnter.vm
@@ -1,2 +1,2 @@
-#set($title = "Geofence entered")
+#set($subject = "$device.name: has entered geofence")
$device.name has entered geofence $geofence.name at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/geofenceExit.vm b/templates/short/geofenceExit.vm
index db5243600..7d3ae6f6e 100644
--- a/templates/short/geofenceExit.vm
+++ b/templates/short/geofenceExit.vm
@@ -1,2 +1,2 @@
-#set($title = "Geofence exited")
+#set($subject = "$device.name: has exited geofence")
$device.name has exited geofence $geofence.name at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/ignitionOff.vm b/templates/short/ignitionOff.vm
index 953e8d0a5..db5a3f3e1 100644
--- a/templates/short/ignitionOff.vm
+++ b/templates/short/ignitionOff.vm
@@ -1,2 +1,2 @@
-#set($title = "Ignition OFF")
+#set($subject = "$device.name: ignition OFF")
$device.name ignition OFF at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/ignitionOn.vm b/templates/short/ignitionOn.vm
index 610b8e272..412ad4d84 100644
--- a/templates/short/ignitionOn.vm
+++ b/templates/short/ignitionOn.vm
@@ -1,2 +1,2 @@
-#set($title = "Ignition ON")
+#set($subject = "$device.name: ignition ON")
$device.name ignition ON at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/maintenance.vm b/templates/short/maintenance.vm
index 917345599..a58e274b8 100644
--- a/templates/short/maintenance.vm
+++ b/templates/short/maintenance.vm
@@ -1,2 +1,2 @@
-#set($title = "Maintenance")
+#set($subject = "$device.name: maintenance is required")
$device.name maintenance $maintenance.name is required at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/test.vm b/templates/short/test.vm
index bd317d97b..c9d93ce67 100644
--- a/templates/short/test.vm
+++ b/templates/short/test.vm
@@ -1,2 +1,2 @@
-#set($title = "Test")
+#set($subject = "Test message")
Test message
diff --git a/templates/short/textMessage.vm b/templates/short/textMessage.vm
index 456dcacd3..54c134df4 100644
--- a/templates/short/textMessage.vm
+++ b/templates/short/textMessage.vm
@@ -1,2 +1,2 @@
-#set($title = "Text message")
+#set($subject = "$device.name: text message received")
Text message received from $device.name at $dateTool.format("YYYY-MM-dd HH:mm:ss", $event.eventTime, $locale, $timezone)
diff --git a/templates/short/unknown.vm b/templates/short/unknown.vm
index a7259f6e9..2f9d5e3af 100644
--- a/templates/short/unknown.vm
+++ b/templates/short/unknown.vm
@@ -1,2 +1,2 @@
-#set($title = "Unknown")
+#set($subject = "Unknown type")
Unknown type