diff options
Diffstat (limited to 'web/app/view/StateController.js')
-rw-r--r-- | web/app/view/StateController.js | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/web/app/view/StateController.js b/web/app/view/StateController.js index 70f02281..44b01382 100644 --- a/web/app/view/StateController.js +++ b/web/app/view/StateController.js @@ -36,6 +36,9 @@ Ext.define('Traccar.view.StateController', { deselectfeature: 'deselectFeature' } }, + global: { + stategeocode: 'onGeocode' + }, store: { '#LatestPositions': { add: 'updateLatest', @@ -48,7 +51,6 @@ Ext.define('Traccar.view.StateController', { } }, - init: function () { var i, hideAttributesPreference, attributesList; if (Traccar.app.getUser().get('admin') || @@ -184,5 +186,29 @@ Ext.define('Traccar.view.StateController', { this.position = null; Ext.getStore('Attributes').removeAll(); } + }, + + onGeocode: function () { + var positionId = this.position.getId(); + if (!this.position.get('address')) { + Ext.Ajax.request({ + scope: this, + method: 'GET', + url: 'api/server/geocode', + params: { + latitude: this.position.get('latitude'), + longitude: this.position.get('longitude') + }, + success: function (response) { + if (this.position && this.position.getId() === positionId) { + this.position.set('address', response.responseText); + this.updatePosition(); + } + }, + failure: function (response) { + Traccar.app.showError(response); + } + }); + } } }); |