diff options
Diffstat (limited to 'web/app/controller/Root.js')
-rw-r--r-- | web/app/controller/Root.js | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/web/app/controller/Root.js b/web/app/controller/Root.js index 98ded9c47..3a7f24bca 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("beep.wav"); + } + 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:'; @@ -99,7 +110,7 @@ Ext.define('Traccar.controller.Root', { }; socket.onmessage = function (event) { - var i, j, store, data, array, entity, device, typeKey, text, geofence; + var i, j, store, data, array, entity, device, typeKey, alarmKey, text, geofence; data = Ext.decode(event.data); @@ -145,6 +156,24 @@ Ext.define('Traccar.controller.Root', { } } text = Strings.eventCommandResult + ': ' + text; + } else if (array[i].type === 'alarm' && data.positions) { + alarmKey = 'alarm'; + text = Strings[alarmKey]; + if (typeof text === 'undefined') { + text = alarmKey; + } + for (j = 0; j < data.positions.length; j++) { + if (data.positions[j].id === array[i].positionId && data.positions[j].attributes.alarm != null) { + if (typeof data.positions[j].attributes.alarm === 'string' && data.positions[j].attributes.alarm.length >= 2){ + alarmKey = 'alarm' + data.positions[j].attributes.alarm.charAt(0).toUpperCase() + data.positions[j].attributes.alarm.slice(1); + text = Strings[alarmKey]; + if (typeof text === 'undefined') { + text = alarmKey; + } + } + break; + } + } } else { typeKey = 'event' + array[i].type.charAt(0).toUpperCase() + array[i].type.slice(1); text = Strings[typeKey]; @@ -160,7 +189,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); + } } } } |