diff options
author | Abyss777 <abyss@fox5.ru> | 2017-02-03 11:59:57 +0500 |
---|---|---|
committer | Abyss777 <abyss@fox5.ru> | 2017-02-03 15:05:44 +0500 |
commit | cad1c950fd79057ebfd89e362a2b54eb3e588a5c (patch) | |
tree | 3267602d17f689d6d0bceb24a94ae1a58863a0bb | |
parent | 962c40e2127f9c9a7687e4ccb7a6d4a33ac203f7 (diff) | |
download | trackermap-web-cad1c950fd79057ebfd89e362a2b54eb3e588a5c.tar.gz trackermap-web-cad1c950fd79057ebfd89e362a2b54eb3e588a5c.tar.bz2 trackermap-web-cad1c950fd79057ebfd89e362a2b54eb3e588a5c.zip |
Better cleanup after device remove
-rw-r--r-- | web/app/view/DevicesController.js | 8 | ||||
-rw-r--r-- | web/app/view/MapMarkerController.js | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/web/app/view/DevicesController.js b/web/app/view/DevicesController.js index e856731c..cd858341 100644 --- a/web/app/view/DevicesController.js +++ b/web/app/view/DevicesController.js @@ -32,11 +32,11 @@ Ext.define('Traccar.view.DevicesController', { listen: { controller: { '*': { - selectreport: 'selectReport', - deselectfeature: 'deselectFeature' + selectreport: 'selectReport' }, 'map': { - selectdevice: 'selectDevice' + selectdevice: 'selectDevice', + deselectfeature: 'deselectFeature' } }, store: { @@ -101,6 +101,8 @@ Ext.define('Traccar.view.DevicesController', { this.updateButtons(selected); if (selected.getCount() > 0) { this.fireEvent('selectdevice', selected.getLastSelected(), true); + } else { + this.fireEvent('deselectfeature'); } }, diff --git a/web/app/view/MapMarkerController.js b/web/app/view/MapMarkerController.js index 5e1861c4..39517553 100644 --- a/web/app/view/MapMarkerController.js +++ b/web/app/view/MapMarkerController.js @@ -149,6 +149,15 @@ Ext.define('Traccar.view.MapMarkerController', { deviceId = data[i].get('id'); if (this.latestMarkers[deviceId]) { this.getView().getMarkersSource().removeFeature(this.latestMarkers[deviceId]); + delete this.latestMarkers[deviceId]; + } + if (this.accuracyCircles[deviceId]) { + this.getView().getAccuracySource().removeFeature(this.accuracyCircles[deviceId]); + delete this.accuracyCircles[deviceId]; + } + if (this.liveRoutes[deviceId]) { + this.getView().getLiveRouteSource().removeFeature(this.liveRoutes[deviceId]); + delete this.liveRoutes[deviceId]; } } }, |