diff options
Diffstat (limited to 'web')
-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]; } } }, |