diff options
50 files changed, 244 insertions, 93 deletions
@@ -47,6 +47,7 @@ <entry key='event.globalSpeedLimit'>90</entry> <entry key='event.motionHandler'>true</entry> <entry key='event.geofenceHandler'>true</entry> + <entry key='event.alertHandler'>true</entry> <!--<entry key='mail.smtp.host'>smtp.example.com</entry> for STARTTLS diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java index 44f1b0657..eb08c7e08 100644 --- a/src/org/traccar/BasePipelineFactory.java +++ b/src/org/traccar/BasePipelineFactory.java @@ -29,10 +29,7 @@ import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.SimpleChannelHandler; import org.jboss.netty.handler.logging.LoggingHandler; import org.jboss.netty.handler.timeout.IdleStateHandler; -import org.traccar.events.CommandResultEventHandler; -import org.traccar.events.GeofenceEventHandler; -import org.traccar.events.MotionEventHandler; -import org.traccar.events.OverspeedEventHandler; +import org.traccar.events.*; import org.traccar.helper.Log; import java.net.InetSocketAddress; @@ -52,6 +49,7 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory { private OverspeedEventHandler overspeedEventHandler; private MotionEventHandler motionEventHandler; private GeofenceEventHandler geofenceEventHandler; + private AlertEventHandler alertEventHandler; private static final class OpenChannelHandler extends SimpleChannelHandler { @@ -146,6 +144,9 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory { if (Context.getConfig().getBoolean("event.geofenceHandler")) { geofenceEventHandler = new GeofenceEventHandler(); } + if (Context.getConfig().getBoolean("event.alertHandler")) { + alertEventHandler = new AlertEventHandler(); + } } protected abstract void addSpecificHandlers(ChannelPipeline pipeline); @@ -207,6 +208,10 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory { pipeline.addLast("GeofenceEventHandler", geofenceEventHandler); } + if (alertEventHandler != null) { + pipeline.addLast("AlertEventHandler", alertEventHandler); + } + pipeline.addLast("mainHandler", new MainEventHandler()); return pipeline; } diff --git a/src/org/traccar/events/AlertEventHandler.java b/src/org/traccar/events/AlertEventHandler.java new file mode 100644 index 000000000..92d1566a7 --- /dev/null +++ b/src/org/traccar/events/AlertEventHandler.java @@ -0,0 +1,46 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * + * 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.events; + +import java.util.ArrayList; +import java.util.Collection; + +import org.traccar.BaseEventHandler; +import org.traccar.model.Event; +import org.traccar.model.Position; + +public class AlertEventHandler extends BaseEventHandler { + + @Override + protected Collection<Event> analyzePosition(Position position) { + Object alarm = position.getAttributes().get(Position.KEY_ALARM); + if (alarm != null) { + Collection<Event> events = new ArrayList<>(); + if(alarm.equals(Event.TYPE_SOS_ALARM)){ + events.add(new Event(Event.TYPE_SOS_ALARM, position.getDeviceId(), position.getId())); + } else if(alarm.equals(Event.TYPE_VIBRATION_ALARM)){ + events.add(new Event(Event.TYPE_VIBRATION_ALARM, position.getDeviceId(), position.getId())); + } else if(alarm.equals(Event.TYPE_MOVEMENT_ALARM)){ + events.add(new Event(Event.TYPE_MOVEMENT_ALARM, position.getDeviceId(), position.getId())); + } else if(alarm.equals(Event.TYPE_OVERSPEED_ALARM)){ + events.add(new Event(Event.TYPE_OVERSPEED_ALARM, position.getDeviceId(), position.getId())); + } + return events; + } + return null; + } + +} diff --git a/src/org/traccar/model/Event.java b/src/org/traccar/model/Event.java index 235a39f9a..3a0056bd6 100644 --- a/src/org/traccar/model/Event.java +++ b/src/org/traccar/model/Event.java @@ -48,6 +48,11 @@ public class Event extends Message { public static final String TYPE_GEOFENCE_ENTER = "geofenceEnter"; public static final String TYPE_GEOFENCE_EXIT = "geofenceExit"; + public static final String TYPE_SOS_ALARM = "sosAlarm"; + public static final String TYPE_VIBRATION_ALARM = "vibrationAlarm"; + public static final String TYPE_MOVEMENT_ALARM = "movementAlarm"; + public static final String TYPE_OVERSPEED_ALARM = "overspeedAlarm"; + private Date serverTime; public Date getServerTime() { diff --git a/src/org/traccar/model/Position.java b/src/org/traccar/model/Position.java index c5a7889bd..4e03b2097 100644 --- a/src/org/traccar/model/Position.java +++ b/src/org/traccar/model/Position.java @@ -28,7 +28,6 @@ public class Position extends Message { public static final String KEY_GPS = "gps"; public static final String KEY_EVENT = "event"; public static final String KEY_ALARM = "alarm"; - public static final String KEY_ALARM_TYPE = "alarm-type"; public static final String KEY_STATUS = "status"; public static final String KEY_ODOMETER = "odometer"; public static final String KEY_HOURS = "hours"; diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java index ffe16e975..09375958e 100644 --- a/src/org/traccar/protocol/H02ProtocolDecoder.java +++ b/src/org/traccar/protocol/H02ProtocolDecoder.java @@ -24,6 +24,7 @@ import org.traccar.helper.BitUtil; import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; +import org.traccar.model.Event; import org.traccar.model.Position; import java.net.SocketAddress; @@ -65,18 +66,17 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder { private void processStatus(Position position, long status) { if (!BitUtil.check(status, 0) || !BitUtil.check(status, 1) || !BitUtil.check(status, 3) || !BitUtil.check(status, 4) || !BitUtil.check(status, 7)) { - position.set(Position.KEY_ALARM, true); if (!BitUtil.check(status, 0)){ - position.set(Position.KEY_ALARM_TYPE, "theft"); + position.set(Position.KEY_ALARM, Event.TYPE_VIBRATION_ALARM);//theft alarm } else if (!BitUtil.check(status, 1)){ - position.set(Position.KEY_ALARM_TYPE, "robbery"); + position.set(Position.KEY_ALARM, "robbery"); } else if (!BitUtil.check(status, 3)){ - position.set(Position.KEY_ALARM_TYPE, "illegal ignition"); + position.set(Position.KEY_ALARM, "illegal ignition"); } else if (!BitUtil.check(status, 4)){ - position.set(Position.KEY_ALARM_TYPE, "entering"); + position.set(Position.KEY_ALARM, "entering"); } else if (!BitUtil.check(status, 7)){ - position.set(Position.KEY_ALARM_TYPE, "out"); + position.set(Position.KEY_ALARM, "out"); } } diff --git a/tools/test-generator.py b/tools/test-generator.py index 09fb65611..54e5feced 100755 --- a/tools/test-generator.py +++ b/tools/test-generator.py @@ -35,7 +35,7 @@ for i in range(0, len(waypoints)): def send(lat, lon, course, alarm): params = (('id', id), ('timestamp', int(time.time())), ('lat', lat), ('lon', lon), ('bearing', course)) if alarm: - params = params + (('alarm', 'true'),) + params = params + (('alarm', 'sosAlarm'),) urllib2.urlopen(server + '?' + urllib.urlencode(params)).read() def course(lat1, lon1, lat2, lon2): @@ -52,7 +52,7 @@ index = 0 while True: (lat1, lon1) = points[index % len(points)] (lat2, lon2) = points[(index + 1) % len(points)] - alarm = False #((index % 10) == 0) + alarm = ((index % 10) == 0) send(lat1, lon1, course(lat1, lon1, lat2, lon2), alarm) time.sleep(period) index += 1 diff --git a/web/app/AttributeFormatter.js b/web/app/AttributeFormatter.js index 253dadb53..4b6cb5755 100644 --- a/web/app/AttributeFormatter.js +++ b/web/app/AttributeFormatter.js @@ -34,30 +34,11 @@ Ext.define('Traccar.AttributeFormatter', { return Ext.getStore('DistanceUnits').formatValue(value, Traccar.app.getPreference('distanceUnit')); }, - alarmFormatter: function (attributes) { - if (attributes instanceof Object) { - if (attributes.hasOwnProperty('alarm')){ - var value = attributes.alarm; - if (typeof value === 'boolean') { - value = (value ? Ext.Msg.buttonText.yes : Ext.Msg.buttonText.no); - } - return '<span style="color:red;">' + value + '</span>'; - } - } - return ''; - }, - - alarmTypeFormatter: function (attributes) { - var alatmType = ''; - if (attributes instanceof Object) { - for (key in attributes) { - if (attributes.hasOwnProperty(key) && key.toLowerCase()=='alarm-type') { - alatmType = attributes[key]; - break; - } - } + alarmFormatter: function (value) { + if (typeof value === 'boolean') { + value = (value ? Ext.Msg.buttonText.yes : Ext.Msg.buttonText.no); } - return '<span style="color:red;">' + alatmType + '</span>'; + return '<span style="color:red;">' + value + '</span>'; }, defaultFormatter: function (value) { @@ -86,8 +67,6 @@ Ext.define('Traccar.AttributeFormatter', { return this.distanceFormatter; } else if (key === 'alarm') { return this.alarmFormatter; - } else if (key === 'alarm-type') { - return this.alarmTypeFormatter; } else { return this.defaultFormatter; } diff --git a/web/app/controller/Root.js b/web/app/controller/Root.js index 98ded9c47..dec3c9158 100644 --- a/web/app/controller/Root.js +++ b/web/app/controller/Root.js @@ -89,6 +89,17 @@ Ext.define('Traccar.controller.Root', { } }, + beep: function() { + if(this.snd == null){ + this.snd = new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU="); + } + this.snd.play(); + }, + + showAlarmSelected: function () { + return Ext.getCmp('showAlarmButton') && Ext.getCmp('showAlarmButton').pressed; + }, + asyncUpdate: function (first) { var protocol, socket, self = this; protocol = location.protocol === 'https:' ? 'wss:' : 'ws:'; @@ -160,7 +171,10 @@ Ext.define('Traccar.controller.Root', { } device = Ext.getStore('Devices').getById(array[i].deviceId); if (typeof device !== 'undefined') { - Ext.toast(text, device.getData().name); + if(self.showAlarmSelected()){ + self.beep(); + Ext.toast(text, device.getData().name); + } } } } diff --git a/web/app/view/Report.js b/web/app/view/Report.js index 95f8144f2..78ff5d52f 100644 --- a/web/app/view/Report.js +++ b/web/app/view/Report.js @@ -120,10 +120,5 @@ Ext.define('Traccar.view.Report', { dataIndex: 'attributes', flex: 1, renderer: Traccar.AttributeFormatter.getFormatter('alarm') - }, { - text: 'Alarm Type', - dataIndex: 'attributes', - flex: 1, - renderer: Traccar.AttributeFormatter.getFormatter('alarm-type') }] }); diff --git a/web/app/view/StateController.js b/web/app/view/StateController.js index 68ec3466d..01df6645d 100644 --- a/web/app/view/StateController.js +++ b/web/app/view/StateController.js @@ -62,11 +62,6 @@ Ext.define('Traccar.view.StateController', { if (this.deviceId === data[i].get('deviceId')) { this.updatePosition(data[i]); } - var position = data[i]; - var attributes = position.get('attributes'); - if (attributes instanceof Object){ - if (attributes.hasOwnProperty('alarm') && this.showAlarmSelected()) this.onAlarm(position.get('deviceId'), attributes); - } } }, @@ -109,50 +104,6 @@ Ext.define('Traccar.view.StateController', { } }, - showAlarmSelected: function () { - return Ext.getCmp('showAlarmButton') && Ext.getCmp('showAlarmButton').pressed; - }, - - onAlarm: function(deviceId, attributes){ - var alatmType = ''; - for (key in attributes) { - if (attributes.hasOwnProperty(key) && key.toLowerCase()=='alarm-type') { - alatmType = ' of type ' + attributes[key]; - break; - } - } - - var device = Ext.getStore('Devices').findRecord('id', deviceId, 0, false, false, true); - if(device){ - var deviceName = device.get('name'); - var msg = 'Alarm'+alatmType+' on device '+deviceName+'!'; - this.showAlarmMsg(msg); - } - }, - - showAlarmMsg: function(msg){ - this.beep(); - var alarmMsg = Ext.Msg.show({ - title:'Alarm', - message: msg, - modal: false, - buttons: Ext.Msg.YES, - icon: Ext.Msg.WARNING - }); - - window.setTimeout(function(){ - alarmMsg.close(); - }, 10000) - - }, - - beep: function() { - if(this.snd == null){ - this.snd = new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU="); - } - this.snd.play(); - }, - selectDevice: function (device) { var position; this.deviceId = device.get('id'); diff --git a/web/l10n/ar.json b/web/l10n/ar.json index 515b75510..a0d843aad 100644 --- a/web/l10n/ar.json +++ b/web/l10n/ar.json @@ -118,6 +118,10 @@ "eventCommandResult": "نتيجة الأمر", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "نوع الملاحظة", "notificationWeb": "أرسل عن طريق صفحة الويب", "notificationMail": "أرسل عن طريق البريد الإلكتروني" diff --git a/web/l10n/bg.json b/web/l10n/bg.json index ac739a6ec..08a1c67de 100644 --- a/web/l10n/bg.json +++ b/web/l10n/bg.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/cs.json b/web/l10n/cs.json index 71448bfb4..d2fe08c0a 100644 --- a/web/l10n/cs.json +++ b/web/l10n/cs.json @@ -118,6 +118,10 @@ "eventCommandResult": "Výsledek příkazu", "eventGeofenceEnter": "Zařízení vstoupilo do geografické hranice", "eventGeofenceExit": "Zařízení opustilo geografickou hranici", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Typ oznámení", "notificationWeb": "Odeslat přes web", "notificationMail": "Odeslat přes mail" diff --git a/web/l10n/da.json b/web/l10n/da.json index c24aae9c1..5bf98be9a 100644 --- a/web/l10n/da.json +++ b/web/l10n/da.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/de.json b/web/l10n/de.json index d76bf0824..8aba977fa 100644 --- a/web/l10n/de.json +++ b/web/l10n/de.json @@ -118,6 +118,10 @@ "eventCommandResult": "Ergrbnis des Befehls", "eventGeofenceEnter": "Gerät hat Geo-Zaun betreten", "eventGeofenceExit": "Gerät hat Geo-Zaun verlassen", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Art der Benachrichtigung ", "notificationWeb": "Per Web senden", "notificationMail": "Per E-Mail senden" diff --git a/web/l10n/el.json b/web/l10n/el.json index d9dbfcdf0..c3924213e 100644 --- a/web/l10n/el.json +++ b/web/l10n/el.json @@ -118,6 +118,10 @@ "eventCommandResult": "Αποτέλεσμα εντολής", "eventGeofenceEnter": "Η συσσκευή εισήλθε του γεωφράχτη", "eventGeofenceExit": "Η συσκευή εξήλθε του γεωφράχτη", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Τύπος ειδοποίησης", "notificationWeb": "Αποστολή μέσω διαδικτύου", "notificationMail": "Αποστολή μέσω ηλ. ταχυδρομείου" diff --git a/web/l10n/en.json b/web/l10n/en.json index e97bb45b1..2f930a27c 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/es.json b/web/l10n/es.json index 68cbeae88..33f1066d5 100644 --- a/web/l10n/es.json +++ b/web/l10n/es.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/fa.json b/web/l10n/fa.json index 66a517f0a..bdea02e01 100644 --- a/web/l10n/fa.json +++ b/web/l10n/fa.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/fi.json b/web/l10n/fi.json index 2c02e0cf5..3b4fef041 100644 --- a/web/l10n/fi.json +++ b/web/l10n/fi.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/fr.json b/web/l10n/fr.json index 5111fb952..85e602e46 100644 --- a/web/l10n/fr.json +++ b/web/l10n/fr.json @@ -118,6 +118,10 @@ "eventCommandResult": "Résultat de la commande", "eventGeofenceEnter": "L'appareil est entré dans un périmètre virtuel", "eventGeofenceExit": "L'appareil est sorti d'un périmètre virtuel", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type de notification", "notificationWeb": "Envoyer par internet", "notificationMail": "Envoyer par E-mail" diff --git a/web/l10n/he.json b/web/l10n/he.json index 175848af1..1a3028644 100644 --- a/web/l10n/he.json +++ b/web/l10n/he.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/hu.json b/web/l10n/hu.json index 2d8ba9976..0aa279bf1 100644 --- a/web/l10n/hu.json +++ b/web/l10n/hu.json @@ -118,6 +118,10 @@ "eventCommandResult": "Parancs eredmény", "eventGeofenceEnter": "Eszköz belépett a geokerítésbe", "eventGeofenceExit": "Eszköz kilépett a geokerítésből", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Értesítés Típusa", "notificationWeb": "Küldés Weben", "notificationMail": "Küldés E-mailben" diff --git a/web/l10n/id.json b/web/l10n/id.json index d0f03009e..e4e6f5e76 100644 --- a/web/l10n/id.json +++ b/web/l10n/id.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/it.json b/web/l10n/it.json index b2d9104c7..6b1d6b705 100644 --- a/web/l10n/it.json +++ b/web/l10n/it.json @@ -118,6 +118,10 @@ "eventCommandResult": "Risultato comando", "eventGeofenceEnter": "Il dipositivo e` entrato nel GeoRecinto", "eventGeofenceExit": "Il dipositivo e` uscito dal GeoRecinto", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Tipo notica", "notificationWeb": "Invia tramite Web", "notificationMail": "Invia tramite Mail" diff --git a/web/l10n/ka.json b/web/l10n/ka.json index 0c789b582..bf501a31e 100644 --- a/web/l10n/ka.json +++ b/web/l10n/ka.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/lo.json b/web/l10n/lo.json index 10e9bf226..1be1b13bf 100644 --- a/web/l10n/lo.json +++ b/web/l10n/lo.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/lt.json b/web/l10n/lt.json index 7e35f2f63..e311ffeec 100644 --- a/web/l10n/lt.json +++ b/web/l10n/lt.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/ml.json b/web/l10n/ml.json index ad2689210..832295f87 100644 --- a/web/l10n/ml.json +++ b/web/l10n/ml.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/ms.json b/web/l10n/ms.json index c241deee7..9f36c0171 100644 --- a/web/l10n/ms.json +++ b/web/l10n/ms.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/nb.json b/web/l10n/nb.json index d5ff90186..397eddded 100644 --- a/web/l10n/nb.json +++ b/web/l10n/nb.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/ne.json b/web/l10n/ne.json index 7e3211949..0935ea60b 100644 --- a/web/l10n/ne.json +++ b/web/l10n/ne.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/nl.json b/web/l10n/nl.json index 1b23b288a..c5b88b72c 100644 --- a/web/l10n/nl.json +++ b/web/l10n/nl.json @@ -118,6 +118,10 @@ "eventCommandResult": "Commando resultaat", "eventGeofenceEnter": "Appraat is binnen geografisch gebied", "eventGeofenceExit": "Apparaat verlaat geografisch gebied", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type notificatie", "notificationWeb": "Stuur via web", "notificationMail": "Stuur via mail" diff --git a/web/l10n/nn.json b/web/l10n/nn.json index 2fe357e3d..e674ca630 100644 --- a/web/l10n/nn.json +++ b/web/l10n/nn.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/pl.json b/web/l10n/pl.json index 7ac5bcba3..03009b42b 100644 --- a/web/l10n/pl.json +++ b/web/l10n/pl.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/pt.json b/web/l10n/pt.json index 0feb253d9..5480e4ed0 100644 --- a/web/l10n/pt.json +++ b/web/l10n/pt.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/pt_BR.json b/web/l10n/pt_BR.json index c536d5239..f6bc0d460 100644 --- a/web/l10n/pt_BR.json +++ b/web/l10n/pt_BR.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/ro.json b/web/l10n/ro.json index cdfec868d..9892f0ae6 100644 --- a/web/l10n/ro.json +++ b/web/l10n/ro.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/ru.json b/web/l10n/ru.json index 23314d64d..1a6a64cc3 100644 --- a/web/l10n/ru.json +++ b/web/l10n/ru.json @@ -118,6 +118,10 @@ "eventCommandResult": "Результат команды", "eventGeofenceEnter": "Устройство вошло в геозону", "eventGeofenceExit": "Устройство покинуло геозону", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Тип уведомления", "notificationWeb": "Отправлять через Веб", "notificationMail": "Отправлять через Почту" diff --git a/web/l10n/si.json b/web/l10n/si.json index 00c5a5bc9..78c2468a4 100644 --- a/web/l10n/si.json +++ b/web/l10n/si.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/sk.json b/web/l10n/sk.json index bd54ed0a7..b1afc742b 100644 --- a/web/l10n/sk.json +++ b/web/l10n/sk.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/sl.json b/web/l10n/sl.json index fc81f6500..c4f5bfb7d 100644 --- a/web/l10n/sl.json +++ b/web/l10n/sl.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/sr.json b/web/l10n/sr.json index 2170cc444..b7468c13b 100644 --- a/web/l10n/sr.json +++ b/web/l10n/sr.json @@ -118,6 +118,10 @@ "eventCommandResult": "Stanje komande", "eventGeofenceEnter": "Uređaj je ušao u geoogradu", "eventGeofenceExit": "Uređaj je izašao iz geoograde", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Tip obaveštenja", "notificationWeb": "Pošalji preko Web-a", "notificationMail": "Pošalji putem Email-a" diff --git a/web/l10n/ta.json b/web/l10n/ta.json index 5d47face5..e8de9c292 100644 --- a/web/l10n/ta.json +++ b/web/l10n/ta.json @@ -118,6 +118,10 @@ "eventCommandResult": "கட்டளை விளைவு", "eventGeofenceEnter": "சாதனம் பூகோள வேலியினுள் நுழைந்துள்ளது", "eventGeofenceExit": "சாதனம் பூகோள வேலியை விட்டு வெளியேறியது", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "type of notification", "notificationWeb": "வலைதளம் வழி அனுப்புக ", "notificationMail": "மின்னஞ்சல் வழி அனுப்புக" diff --git a/web/l10n/th.json b/web/l10n/th.json index e1b2b3867..3349ef895 100644 --- a/web/l10n/th.json +++ b/web/l10n/th.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/tr.json b/web/l10n/tr.json index bcce758d6..92793a35a 100644 --- a/web/l10n/tr.json +++ b/web/l10n/tr.json @@ -118,6 +118,10 @@ "eventCommandResult": "Komut sonucu", "eventGeofenceEnter": "Cihaz güvenli bölgede", "eventGeofenceExit": "Cihaz güvenli bölgeden çıktı", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Bildirim tipi", "notificationWeb": "Wed ile gönder", "notificationMail": "E-posta ile gönder" diff --git a/web/l10n/uk.json b/web/l10n/uk.json index 7cb40e174..d49b0d6f3 100644 --- a/web/l10n/uk.json +++ b/web/l10n/uk.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/vi.json b/web/l10n/vi.json index 676b07318..e717719b8 100644 --- a/web/l10n/vi.json +++ b/web/l10n/vi.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" diff --git a/web/l10n/zh.json b/web/l10n/zh.json index 6d32fae23..86089700e 100644 --- a/web/l10n/zh.json +++ b/web/l10n/zh.json @@ -118,6 +118,10 @@ "eventCommandResult": "Command result", "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", + "eventSosAlarm": "SOS alarm", + "eventVibrationAlarm": "Vibration alarm", + "eventMovementAlarm": "Movement alarm", + "eventOverspeedAlarm": "Overspeed alarm", "notificationType": "Type of Notification", "notificationWeb": "Send via Web", "notificationMail": "Send via Mail" |