aboutsummaryrefslogtreecommitdiff
path: root/web/app/view/StateController.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/app/view/StateController.js')
-rw-r--r--web/app/view/StateController.js28
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);
+ }
+ });
+ }
}
});