From efbaeb0393df7532dd7865f0e77171209f4e9363 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 8 Oct 2016 16:16:55 +1300 Subject: Option to force server settings --- web/app/Application.js | 6 +++++- web/app/model/Server.js | 3 +++ web/app/view/BaseMap.js | 11 +++++------ web/app/view/ServerDialog.js | 5 +++++ 4 files changed, 18 insertions(+), 7 deletions(-) (limited to 'web/app') diff --git a/web/app/Application.js b/web/app/Application.js index aab9bc8a..4671a829 100644 --- a/web/app/Application.js +++ b/web/app/Application.js @@ -97,7 +97,11 @@ Ext.define('Traccar.Application', { }, getPreference: function (key, defaultValue) { - return this.getUser().get(key) || this.getServer().get(key) || defaultValue; + if (this.getServer().get('forceSettings')) { + return this.getServer().get(key) || this.getUser().get(key) || defaultValue; + } else { + return this.getUser().get(key) || this.getServer().get(key) || defaultValue; + } }, showError: function (response) { diff --git a/web/app/model/Server.js b/web/app/model/Server.js index eb04c8cc..4fe8efd5 100644 --- a/web/app/model/Server.js +++ b/web/app/model/Server.js @@ -55,6 +55,9 @@ Ext.define('Traccar.model.Server', { }, { name: 'twelveHourFormat', type: 'boolean' + }, { + name: 'forceSettings', + type: 'boolean' }, { name: 'attributes' }], diff --git a/web/app/view/BaseMap.js b/web/app/view/BaseMap.js index 3a0f4420..e37b5cf3 100644 --- a/web/app/view/BaseMap.js +++ b/web/app/view/BaseMap.js @@ -30,12 +30,11 @@ Ext.define('Traccar.view.BaseMap', { }, initMap: function () { - var user, server, layer, type, bingKey, lat, lon, zoom, target; + var server, layer, type, bingKey, lat, lon, zoom, target; - user = Traccar.app.getUser(); server = Traccar.app.getServer(); - type = user.get('map') || server.get('map'); + type = Traccar.app.getPreference('map', null); bingKey = server.get('bingKey'); if (type === 'custom') { @@ -88,9 +87,9 @@ Ext.define('Traccar.view.BaseMap', { }); } - lat = user.get('latitude') || server.get('latitude') || Traccar.Style.mapDefaultLat; - lon = user.get('longitude') || server.get('longitude') || Traccar.Style.mapDefaultLon; - zoom = user.get('zoom') || server.get('zoom') || Traccar.Style.mapDefaultZoom; + lat = Traccar.app.getPreference('latitude', Traccar.Style.mapDefaultLat); + lon = Traccar.app.getPreference('longitude', Traccar.Style.mapDefaultLon); + zoom = Traccar.app.getPreference('zoom', Traccar.Style.mapDefaultZoom); this.mapView = new ol.View({ center: ol.proj.fromLonLat([lon, lat]), diff --git a/web/app/view/ServerDialog.js b/web/app/view/ServerDialog.js index a08851ca..14af1833 100644 --- a/web/app/view/ServerDialog.js +++ b/web/app/view/ServerDialog.js @@ -91,6 +91,11 @@ Ext.define('Traccar.view.ServerDialog', { name: 'twelveHourFormat', fieldLabel: Strings.settingsTwelveHourFormat, allowBlank: false + }, { + xtype: 'checkboxfield', + name: 'forceSettings', + fieldLabel: Strings.serverForceSettings, + allowBlank: false }] }, -- cgit v1.2.3