diff options
Diffstat (limited to 'web/app')
-rw-r--r-- | web/app/view/Devices.js | 6 | ||||
-rw-r--r-- | web/app/view/MapController.js | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/web/app/view/Devices.js b/web/app/view/Devices.js index 128cd3be1..21bea6980 100644 --- a/web/app/view/Devices.js +++ b/web/app/view/Devices.js @@ -42,6 +42,12 @@ Ext.define('Traccar.view.Devices', { }, { xtype: 'tbfill' }, { + id:'deviceFollowButton', + glyph: 'xf05b@FontAwesome', + tooltip: Strings.deviceFollow, + tooltipType: 'title', + enableToggle: true + }, { xtype: 'settingsMenu' }] }, diff --git a/web/app/view/MapController.js b/web/app/view/MapController.js index a3412b796..e4ce53b57 100644 --- a/web/app/view/MapController.js +++ b/web/app/view/MapController.js @@ -97,6 +97,10 @@ Ext.define('Traccar.view.MapController', { } }, + followSelected: function () { + return Ext.getCmp('deviceFollowButton') && Ext.getCmp('deviceFollowButton').pressed; + }, + updateLatest: function (store, data) { var i, position, geometry, device, deviceId, marker, style; @@ -129,6 +133,10 @@ Ext.define('Traccar.view.MapController', { } marker.getStyle().getImage().setRotation(position.get('course') * Math.PI / 180); + + if (marker === this.selectedMarker && this.followSelected()) { + this.getView().getMapView().setCenter(marker.getGeometry().getCoordinates()); + } } }, |