diff options
-rw-r--r-- | web/app/Application.js | 6 | ||||
-rw-r--r-- | web/app/model/Server.js | 3 | ||||
-rw-r--r-- | web/app/view/BaseMap.js | 11 | ||||
-rw-r--r-- | web/app/view/ServerDialog.js | 5 | ||||
-rw-r--r-- | web/l10n/en.json | 1 |
5 files changed, 19 insertions, 7 deletions
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 @@ -56,6 +56,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 }] }, diff --git a/web/l10n/en.json b/web/l10n/en.json index 11b2e835..c9c65eb2 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -83,6 +83,7 @@ "serverZoom": "Zoom", "serverRegistration": "Registration", "serverReadonly": "Readonly", + "serverForceSettings": "Force Settings", "mapTitle": "Map", "mapLayer": "Map Layer", "mapCustom": "Custom Map", |