aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/app/Application.js4
-rw-r--r--web/app/controller/Root.js7
-rw-r--r--web/app/store/CommonDeviceAttributes.js42
-rw-r--r--web/app/store/CommonUserAttributes.js55
-rw-r--r--web/app/store/DeviceAttributes.js20
-rw-r--r--web/app/store/GroupAttributes.js20
-rw-r--r--web/app/store/ServerAttributes.js50
-rw-r--r--web/app/store/UserAttributes.js33
-rw-r--r--web/app/view/ReportController.js2
-rw-r--r--web/app/view/SettingsMenuController.js6
-rw-r--r--web/app/view/edit/AttributesController.js1
-rw-r--r--web/app/view/edit/DevicesController.js4
-rw-r--r--web/app/view/edit/GroupsController.js4
-rw-r--r--web/app/view/edit/UsersController.js4
-rw-r--r--web/app/view/map/MapController.js4
15 files changed, 121 insertions, 135 deletions
diff --git a/web/app/Application.js b/web/app/Application.js
index 3cee7b78..e0f0aa45 100644
--- a/web/app/Application.js
+++ b/web/app/Application.js
@@ -83,10 +83,12 @@ Ext.define('Traccar.Application', {
'AllTimezones',
'VisibleDevices',
'DeviceStatuses',
+ 'CommonDeviceAttributes',
'DeviceAttributes',
'GeofenceAttributes',
'GroupAttributes',
'ServerAttributes',
+ 'CommonUserAttributes',
'UserAttributes',
'ComputedAttributes',
'AllComputedAttributes',
@@ -104,7 +106,7 @@ Ext.define('Traccar.Application', {
return window.matchMedia && window.matchMedia('(max-width: 768px)').matches;
},
- isVehicleFeaturesDisabled: function () {
+ getVehicleFeaturesDisabled: function () {
return this.getBooleanAttributePreference('ui.disableVehicleFetures');
},
diff --git a/web/app/controller/Root.js b/web/app/controller/Root.js
index 92620115..1c70dd03 100644
--- a/web/app/controller/Root.js
+++ b/web/app/controller/Root.js
@@ -113,6 +113,13 @@ Ext.define('Traccar.controller.Root', {
Ext.getStore('AttributeAliases').load();
Ext.getStore('ComputedAttributes').load();
this.initReportEventTypesStore();
+
+ Ext.getStore('ServerAttributes').loadData(Ext.getStore('CommonDeviceAttributes').getData().items, true);
+ Ext.getStore('ServerAttributes').loadData(Ext.getStore('CommonUserAttributes').getData().items, true);
+ Ext.getStore('UserAttributes').loadData(Ext.getStore('CommonUserAttributes').getData().items, true);
+ Ext.getStore('DeviceAttributes').loadData(Ext.getStore('CommonDeviceAttributes').getData().items, true);
+ Ext.getStore('GroupAttributes').loadData(Ext.getStore('CommonDeviceAttributes').getData().items, true);
+
Ext.getStore('Devices').load({
scope: this,
callback: function () {
diff --git a/web/app/store/CommonDeviceAttributes.js b/web/app/store/CommonDeviceAttributes.js
new file mode 100644
index 00000000..83dd4114
--- /dev/null
+++ b/web/app/store/CommonDeviceAttributes.js
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2017 Anton Tananaev (anton@traccar.org)
+ * Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+Ext.define('Traccar.store.CommonDeviceAttributes', {
+ extend: 'Ext.data.Store',
+ model: 'Traccar.model.KnownAttribute',
+
+ data: [{
+ key: 'speedLimit',
+ name: Strings.attributeSpeedLimit,
+ valueType: 'number',
+ dataType: 'speed'
+ }, {
+ key: 'report.ignoreOdometer',
+ name: Strings.attributeReportIgnoreOdometer,
+ valueType: 'boolean'
+ }, {
+ key: 'maintenance.start',
+ name: Strings.attributeMaintenanceStart,
+ valueType: 'number',
+ dataType: 'distance'
+ }, {
+ key: 'maintenance.interval',
+ name: Strings.attributeMaintenanceInterval,
+ valueType: 'number',
+ dataType: 'distance'
+ }]
+});
diff --git a/web/app/store/CommonUserAttributes.js b/web/app/store/CommonUserAttributes.js
new file mode 100644
index 00000000..85d652df
--- /dev/null
+++ b/web/app/store/CommonUserAttributes.js
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2017 Anton Tananaev (anton@traccar.org)
+ * Copyright 2017 Andrey Kunitsyn (andrey@traccar.org)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+Ext.define('Traccar.store.CommonUserAttributes', {
+ extend: 'Ext.data.Store',
+ model: 'Traccar.model.KnownAttribute',
+
+ data: [{
+ key: 'web.liveRouteLength',
+ name: Strings.attributeWebLiveRouteLength,
+ valueType: 'number',
+ allowDecimals: false
+ }, {
+ key: 'web.selectZoom',
+ name: Strings.attributeWebSelectZoom,
+ valueType: 'number',
+ allowDecimals: false,
+ minValue: Traccar.Style.mapDefaultZoom,
+ maxValue: Traccar.Style.mapMaxZoom
+ }, {
+ key: 'ui.disableReport',
+ name: Strings.attributeUiDisableReport,
+ valueType: 'boolean'
+ }, {
+ key: 'ui.disableVehicleFetures',
+ name: Strings.attributeUiDisableVehicleFetures,
+ valueType: 'boolean'
+ }, {
+ key: 'ui.disableDrivers',
+ name: Strings.attributeUiDisableDrivers,
+ valueType: 'boolean'
+ }, {
+ key: 'ui.disableComputedAttributes',
+ name: Strings.attributeUiDisableComputedAttributes,
+ valueType: 'boolean'
+ }, {
+ key: 'ui.disableCalendars',
+ name: Strings.attributeUiDisableCalendars,
+ valueType: 'boolean'
+ }]
+});
diff --git a/web/app/store/DeviceAttributes.js b/web/app/store/DeviceAttributes.js
index 220f9a5b..4b1d9204 100644
--- a/web/app/store/DeviceAttributes.js
+++ b/web/app/store/DeviceAttributes.js
@@ -18,28 +18,8 @@
Ext.define('Traccar.store.DeviceAttributes', {
extend: 'Ext.data.Store',
model: 'Traccar.model.KnownAttribute',
- proxy: 'memory',
data: [{
- key: 'speedLimit',
- name: Strings.attributeSpeedLimit,
- valueType: 'number',
- dataType: 'speed'
- }, {
- key: 'report.ignoreOdometer',
- name: Strings.attributeReportIgnoreOdometer,
- valueType: 'boolean'
- }, {
- key: 'maintenance.start',
- name: Strings.attributeMaintenanceStart,
- valueType: 'number',
- dataType: 'distance'
- }, {
- key: 'maintenance.interval',
- name: Strings.attributeMaintenanceInterval,
- valueType: 'number',
- dataType: 'distance'
- }, {
key: 'web.reportColor',
name: Strings.attributeWebReportColor,
valueType: 'color'
diff --git a/web/app/store/GroupAttributes.js b/web/app/store/GroupAttributes.js
index 2a2765f5..9389db1c 100644
--- a/web/app/store/GroupAttributes.js
+++ b/web/app/store/GroupAttributes.js
@@ -18,28 +18,8 @@
Ext.define('Traccar.store.GroupAttributes', {
extend: 'Ext.data.Store',
model: 'Traccar.model.KnownAttribute',
- proxy: 'memory',
data: [{
- key: 'speedLimit',
- name: Strings.attributeSpeedLimit,
- valueType: 'number',
- dataType: 'speed'
- }, {
- key: 'report.ignoreOdometer',
- name: Strings.attributeReportIgnoreOdometer,
- valueType: 'boolean'
- }, {
- key: 'maintenance.start',
- name: Strings.attributeMaintenanceStart,
- valueType: 'number',
- dataType: 'distance'
- }, {
- key: 'maintenance.interval',
- name: Strings.attributeMaintenanceInterval,
- valueType: 'number',
- dataType: 'distance'
- }, {
key: 'processing.copyAttributes',
name: Strings.attributeProcessingCopyAttributes,
valueType: 'string'
diff --git a/web/app/store/ServerAttributes.js b/web/app/store/ServerAttributes.js
index 109b09e0..204f885b 100644
--- a/web/app/store/ServerAttributes.js
+++ b/web/app/store/ServerAttributes.js
@@ -18,54 +18,6 @@
Ext.define('Traccar.store.ServerAttributes', {
extend: 'Ext.data.Store',
model: 'Traccar.model.KnownAttribute',
- proxy: 'memory',
- data: [{
- key: 'speedLimit',
- name: Strings.attributeSpeedLimit,
- valueType: 'number',
- dataType: 'speed'
- }, {
- key: 'maintenance.start',
- name: Strings.attributeMaintenanceStart,
- valueType: 'number',
- dataType: 'distance'
- }, {
- key: 'maintenance.interval',
- name: Strings.attributeMaintenanceInterval,
- valueType: 'number',
- dataType: 'distance'
- }, {
- key: 'web.liveRouteLength',
- name: Strings.attributeWebLiveRouteLength,
- valueType: 'number',
- allowDecimals: false
- }, {
- key: 'web.selectZoom',
- name: Strings.attributeWebSelectZoom,
- valueType: 'number',
- allowDecimals: false,
- minValue: Traccar.Style.mapDefaultZoom,
- maxValue: Traccar.Style.mapMaxZoom
- }, {
- key: 'ui.disableReport',
- name: Strings.attributeUiDisableReport,
- valueType: 'boolean'
- }, {
- key: 'ui.disableVehicleFetures',
- name: Strings.attributeUiDisableVehicleFetures,
- valueType: 'boolean'
- }, {
- key: 'ui.disableDrivers',
- name: Strings.attributeUiDisableDrivers,
- valueType: 'boolean'
- }, {
- key: 'ui.disableComputedAttributes',
- name: Strings.attributeUiDisableComputedAttributes,
- valueType: 'boolean'
- }, {
- key: 'ui.disableCalendars',
- name: Strings.attributeUiDisableCalendars,
- valueType: 'boolean'
- }]
+ data: []
});
diff --git a/web/app/store/UserAttributes.js b/web/app/store/UserAttributes.js
index a004a54d..dfe69421 100644
--- a/web/app/store/UserAttributes.js
+++ b/web/app/store/UserAttributes.js
@@ -18,7 +18,6 @@
Ext.define('Traccar.store.UserAttributes', {
extend: 'Ext.data.Store',
model: 'Traccar.model.KnownAttribute',
- proxy: 'memory',
data: [{
key: 'mail.smtp.host',
@@ -67,37 +66,5 @@ Ext.define('Traccar.store.UserAttributes', {
key: 'mail.smtp.password',
name: Strings.attributeMailSmtpPassword,
valueType: 'string'
- }, {
- key: 'web.liveRouteLength',
- name: Strings.attributeWebLiveRouteLength,
- valueType: 'number',
- allowDecimals: false
- }, {
- key: 'web.selectZoom',
- name: Strings.attributeWebSelectZoom,
- valueType: 'number',
- allowDecimals: false,
- minValue: Traccar.Style.mapDefaultZoom,
- maxValue: Traccar.Style.mapMaxZoom
- }, {
- key: 'ui.disableReport',
- name: Strings.attributeUiDisableReport,
- valueType: 'boolean'
- }, {
- key: 'ui.disableVehicleFetures',
- name: Strings.attributeUiDisableVehicleFetures,
- valueType: 'boolean'
- }, {
- key: 'ui.disableDrivers',
- name: Strings.attributeUiDisableDrivers,
- valueType: 'boolean'
- }, {
- key: 'ui.disableComputedAttributes',
- name: Strings.attributeUiDisableComputedAttributes,
- valueType: 'boolean'
- }, {
- key: 'ui.disableCalendars',
- name: Strings.attributeUiDisableCalendars,
- valueType: 'boolean'
}]
});
diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js
index 5c052b50..f9dbc03c 100644
--- a/web/app/view/ReportController.js
+++ b/web/app/view/ReportController.js
@@ -79,7 +79,7 @@ Ext.define('Traccar.view.ReportController', {
hidden: true
});
}
- if (Traccar.app.isVehicleFeaturesDisabled()) {
+ if (Traccar.app.getVehicleFeaturesDisabled()) {
for (i = 0; i < this.summaryColumns.length; i++) {
if (this.summaryColumns[i].dataIndex.match('engineHours|spentFuel')) {
this.summaryColumns[i].hidden = true;
diff --git a/web/app/view/SettingsMenuController.js b/web/app/view/SettingsMenuController.js
index 7985700a..7175260c 100644
--- a/web/app/view/SettingsMenuController.js
+++ b/web/app/view/SettingsMenuController.js
@@ -45,7 +45,7 @@ Ext.define('Traccar.view.SettingsMenuController', {
if (admin) {
this.lookupReference('settingsServerButton').setHidden(false);
this.lookupReference('settingsStatisticsButton').setHidden(false);
- this.lookupReference('settingsDeviceDistanceButton').setHidden(Traccar.app.isVehicleFeaturesDisabled());
+ this.lookupReference('settingsDeviceDistanceButton').setHidden(Traccar.app.getVehicleFeaturesDisabled());
}
if (admin || manager) {
this.lookupReference('settingsUsersButton').setHidden(false);
@@ -57,8 +57,8 @@ Ext.define('Traccar.view.SettingsMenuController', {
this.lookupReference('settingsNotificationsButton').setHidden(false);
this.lookupReference('settingsCalendarsButton').setHidden(
Traccar.app.getBooleanAttributePreference('ui.disableCalendars'));
- this.lookupReference('settingsDriversButton').setHidden(Traccar.app.isVehicleFeaturesDisabled() ||
- Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
+ this.lookupReference('settingsDriversButton').setHidden(
+ Traccar.app.getVehicleFeaturesDisabled() || Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
}
if (admin || !deviceReadonly && !readonly) {
this.lookupReference('settingsAttributeAliasesButton').setHidden(false);
diff --git a/web/app/view/edit/AttributesController.js b/web/app/view/edit/AttributesController.js
index 235f2c5b..c12c1968 100644
--- a/web/app/view/edit/AttributesController.js
+++ b/web/app/view/edit/AttributesController.js
@@ -90,6 +90,7 @@ Ext.define('Traccar.view.edit.AttributesController', {
displayField: 'name',
valueField: 'key',
allowBlank: false,
+ queryMode: 'local',
listeners: {
change: 'onNameChange'
}
diff --git a/web/app/view/edit/DevicesController.js b/web/app/view/edit/DevicesController.js
index 9616dbd2..df75b1d4 100644
--- a/web/app/view/edit/DevicesController.js
+++ b/web/app/view/edit/DevicesController.js
@@ -61,8 +61,8 @@ Ext.define('Traccar.view.edit.DevicesController', {
deviceReadonly = Traccar.app.getPreference('deviceReadonly', false) && !Traccar.app.getUser().get('admin');
readonly = Traccar.app.getPreference('readonly', false) && !Traccar.app.getUser().get('admin');
this.lookupReference('toolbarAddButton').setDisabled(readonly || deviceReadonly);
- this.lookupReference('toolbarDriversButton').setHidden(Traccar.app.isVehicleFeaturesDisabled() ||
- Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
+ this.lookupReference('toolbarDriversButton').setHidden(
+ Traccar.app.getVehicleFeaturesDisabled() || Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
this.lookupReference('toolbarAttributesButton').setHidden(
Traccar.app.getBooleanAttributePreference('ui.disableComputedAttributes'));
diff --git a/web/app/view/edit/GroupsController.js b/web/app/view/edit/GroupsController.js
index d40c1e69..be26cc93 100644
--- a/web/app/view/edit/GroupsController.js
+++ b/web/app/view/edit/GroupsController.js
@@ -33,8 +33,8 @@ Ext.define('Traccar.view.edit.GroupsController', {
removeTitle: Strings.groupDialog,
init: function () {
- this.lookupReference('toolbarDriversButton').setHidden(Traccar.app.isVehicleFeaturesDisabled() ||
- Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
+ this.lookupReference('toolbarDriversButton').setHidden(
+ Traccar.app.getVehicleFeaturesDisabled() || Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
this.lookupReference('toolbarAttributesButton').setHidden(
Traccar.app.getBooleanAttributePreference('ui.disableComputedAttributes'));
},
diff --git a/web/app/view/edit/UsersController.js b/web/app/view/edit/UsersController.js
index 8da5caa9..d67f5a70 100644
--- a/web/app/view/edit/UsersController.js
+++ b/web/app/view/edit/UsersController.js
@@ -41,8 +41,8 @@ Ext.define('Traccar.view.edit.UsersController', {
init: function () {
Ext.getStore('Users').load();
this.lookupReference('userUsersButton').setHidden(!Traccar.app.getUser().get('admin'));
- this.lookupReference('userDriversButton').setHidden(Traccar.app.isVehicleFeaturesDisabled() ||
- Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
+ this.lookupReference('userDriversButton').setHidden(
+ Traccar.app.isVehicleFeaturesDisabled() || Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
this.lookupReference('userAttributesButton').setHidden(
Traccar.app.getBooleanAttributePreference('ui.disableComputedAttributes'));
this.lookupReference('userCalendarsButton').setHidden(
diff --git a/web/app/view/map/MapController.js b/web/app/view/map/MapController.js
index d8d2249d..75796f9b 100644
--- a/web/app/view/map/MapController.js
+++ b/web/app/view/map/MapController.js
@@ -44,8 +44,8 @@ Ext.define('Traccar.view.map.MapController', {
init: function () {
this.callParent();
- this.lookupReference('showReportsButton').setVisible(Traccar.app.isMobile() &&
- !Traccar.app.getBooleanAttributePreference('ui.disableReport'));
+ this.lookupReference('showReportsButton').setVisible(
+ Traccar.app.isMobile() && !Traccar.app.getBooleanAttributePreference('ui.disableReport'));
this.lookupReference('showEventsButton').setVisible(Traccar.app.isMobile());
},