aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/app/Application.js8
-rw-r--r--web/app/store/ServerAttributes.js16
-rw-r--r--web/app/store/UserAttributes.js16
-rw-r--r--web/app/view/MainController.js3
-rw-r--r--web/app/view/ReportController.js17
-rw-r--r--web/app/view/SettingsMenuController.js11
-rw-r--r--web/app/view/dialog/Geofence.js1
-rw-r--r--web/app/view/dialog/GeofenceController.js5
-rw-r--r--web/app/view/edit/DevicesController.js4
-rw-r--r--web/app/view/edit/GroupsController.js7
-rw-r--r--web/app/view/edit/UsersController.js6
-rw-r--r--web/app/view/map/MapController.js2
-rw-r--r--web/l10n/en.json4
13 files changed, 93 insertions, 7 deletions
diff --git a/web/app/Application.js b/web/app/Application.js
index c14dd4d..3cee7b7 100644
--- a/web/app/Application.js
+++ b/web/app/Application.js
@@ -104,6 +104,10 @@ Ext.define('Traccar.Application', {
return window.matchMedia && window.matchMedia('(max-width: 768px)').matches;
},
+ isVehicleFeaturesDisabled: function () {
+ return this.getBooleanAttributePreference('ui.disableVehicleFetures');
+ },
+
getEventString: function (eventType) {
var key = 'event' + eventType.charAt(0).toUpperCase() + eventType.slice(1);
return Strings[key] || key;
@@ -161,6 +165,10 @@ Ext.define('Traccar.Application', {
}
},
+ getBooleanAttributePreference: function (key) {
+ return this.getAttributePreference(key, false).toString() === 'true';
+ },
+
getReportColor: function (deviceId) {
var index, reportColor, device = Ext.getStore('Devices').getById(deviceId);
if (device) {
diff --git a/web/app/store/ServerAttributes.js b/web/app/store/ServerAttributes.js
index 89a0137..109b09e 100644
--- a/web/app/store/ServerAttributes.js
+++ b/web/app/store/ServerAttributes.js
@@ -51,5 +51,21 @@ Ext.define('Traccar.store.ServerAttributes', {
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/UserAttributes.js b/web/app/store/UserAttributes.js
index 6cf06fb..a004a54 100644
--- a/web/app/store/UserAttributes.js
+++ b/web/app/store/UserAttributes.js
@@ -83,5 +83,21 @@ Ext.define('Traccar.store.UserAttributes', {
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/MainController.js b/web/app/view/MainController.js
index 1a2fe91..126d9af 100644
--- a/web/app/view/MainController.js
+++ b/web/app/view/MainController.js
@@ -20,7 +20,6 @@ Ext.define('Traccar.view.MainController', {
alias: 'controller.mainController',
init: function () {
- this.lookupReference('reportView').setHidden(
- Traccar.app.getAttributePreference('ui.disableReport', false).toString() === 'true');
+ this.lookupReference('reportView').setHidden(Traccar.app.getBooleanAttributePreference('ui.disableReport'));
}
});
diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js
index 4d2c9b3..5c052b5 100644
--- a/web/app/view/ReportController.js
+++ b/web/app/view/ReportController.js
@@ -79,6 +79,23 @@ Ext.define('Traccar.view.ReportController', {
hidden: true
});
}
+ if (Traccar.app.isVehicleFeaturesDisabled()) {
+ for (i = 0; i < this.summaryColumns.length; i++) {
+ if (this.summaryColumns[i].dataIndex.match('engineHours|spentFuel')) {
+ this.summaryColumns[i].hidden = true;
+ }
+ }
+ for (i = 0; i < this.tripsColumns.length; i++) {
+ if (this.tripsColumns[i].dataIndex.match('spentFuel|driverUniqueId')) {
+ this.tripsColumns[i].hidden = true;
+ }
+ }
+ for (i = 0; i < this.stopsColumns.length; i++) {
+ if (this.stopsColumns[i].dataIndex.match('engineHours|spentFuel')) {
+ this.stopsColumns[i].hidden = true;
+ }
+ }
+ }
},
onConfigureClick: function () {
diff --git a/web/app/view/SettingsMenuController.js b/web/app/view/SettingsMenuController.js
index d435e35..5454335 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(false);
+ this.lookupReference('settingsDeviceDistanceButton').setHidden(Traccar.app.isVehicleFeaturesDisabled());
}
if (admin || manager) {
this.lookupReference('settingsUsersButton').setHidden(false);
@@ -55,12 +55,15 @@ Ext.define('Traccar.view.SettingsMenuController', {
this.lookupReference('settingsGroupsButton').setHidden(false);
this.lookupReference('settingsGeofencesButton').setHidden(false);
this.lookupReference('settingsNotificationsButton').setHidden(false);
- this.lookupReference('settingsCalendarsButton').setHidden(false);
- this.lookupReference('settingsDriversButton').setHidden(false);
+ this.lookupReference('settingsCalendarsButton').setHidden(
+ Traccar.app.getBooleanAttributePreference('ui.disableCalendars'));
+ this.lookupReference('settingsDriversButton').setHidden(Traccar.app.isVehicleFeaturesDisabled() ||
+ Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
}
if (admin || !deviceReadonly && !readonly) {
this.lookupReference('settingsAttributeAliasesButton').setHidden(false);
- this.lookupReference('settingsComputedAttributesButton').setHidden(false);
+ this.lookupReference('settingsComputedAttributesButton').setHidden(
+ Traccar.app.getBooleanAttributePreference('ui.disableComputedAttributes'));
}
},
diff --git a/web/app/view/dialog/Geofence.js b/web/app/view/dialog/Geofence.js
index 93f17de..bed20d3 100644
--- a/web/app/view/dialog/Geofence.js
+++ b/web/app/view/dialog/Geofence.js
@@ -46,6 +46,7 @@ Ext.define('Traccar.view.dialog.Geofence', {
fieldLabel: Strings.sharedDescription
}, {
xtype: 'combobox',
+ reference: 'calendarCombo',
name: 'calendarId',
store: 'Calendars',
queryMode: 'local',
diff --git a/web/app/view/dialog/GeofenceController.js b/web/app/view/dialog/GeofenceController.js
index 9fdad61..2f96987 100644
--- a/web/app/view/dialog/GeofenceController.js
+++ b/web/app/view/dialog/GeofenceController.js
@@ -34,6 +34,11 @@ Ext.define('Traccar.view.dialog.GeofenceController', {
}
},
+ init: function () {
+ this.lookupReference('calendarCombo').setHidden(
+ Traccar.app.getBooleanAttributePreference('ui.disableCalendars'));
+ },
+
saveArea: function (value) {
this.lookupReference('areaField').setValue(value);
},
diff --git a/web/app/view/edit/DevicesController.js b/web/app/view/edit/DevicesController.js
index 6de2498..ffe9c9a 100644
--- a/web/app/view/edit/DevicesController.js
+++ b/web/app/view/edit/DevicesController.js
@@ -61,6 +61,10 @@ 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('toolbarAttributesButton').setHidden(
+ Traccar.app.getBooleanAttributePreference('ui.disableComputedAttributes'));
setInterval(function () {
self.getView().getView().refresh();
diff --git a/web/app/view/edit/GroupsController.js b/web/app/view/edit/GroupsController.js
index 21f17ff..f1da19c 100644
--- a/web/app/view/edit/GroupsController.js
+++ b/web/app/view/edit/GroupsController.js
@@ -32,6 +32,13 @@ Ext.define('Traccar.view.edit.GroupsController', {
objectDialog: 'Traccar.view.dialog.Group',
removeTitle: Strings.groupDialog,
+ init: function () {
+ this.lookupReference('toolbarDriversButton').setHidden(Traccar.app.isVehicleFeaturesDisabled() ||
+ Traccar.app.getBooleanAttributePreference('ui.disableDrivers'));
+ this.lookupReference('toolbarAttributesButton').setHidden(
+ Traccar.app.getBooleanAttributePreference('ui.disableComputedAttributes'));
+ },
+
onGeofencesClick: function () {
var admin, group;
admin = Traccar.app.getUser().get('admin');
diff --git a/web/app/view/edit/UsersController.js b/web/app/view/edit/UsersController.js
index fb7a36e..42fc0cd 100644
--- a/web/app/view/edit/UsersController.js
+++ b/web/app/view/edit/UsersController.js
@@ -41,6 +41,12 @@ 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('userAttributesButton').setHidden(
+ Traccar.app.getBooleanAttributePreference('ui.disableComputedAttributes'));
+ this.lookupReference('userCalendarsButton').setHidden(
+ Traccar.app.getBooleanAttributePreference('ui.disableCalendars'));
},
onEditClick: function () {
diff --git a/web/app/view/map/MapController.js b/web/app/view/map/MapController.js
index d8d2f04..d8d2249 100644
--- a/web/app/view/map/MapController.js
+++ b/web/app/view/map/MapController.js
@@ -45,7 +45,7 @@ Ext.define('Traccar.view.map.MapController', {
init: function () {
this.callParent();
this.lookupReference('showReportsButton').setVisible(Traccar.app.isMobile() &&
- !Traccar.app.getAttributePreference('ui.disableReport', false));
+ !Traccar.app.getBooleanAttributePreference('ui.disableReport'));
this.lookupReference('showEventsButton').setVisible(Traccar.app.isMobile());
},
diff --git a/web/l10n/en.json b/web/l10n/en.json
index 6476b0d..69df156 100644
--- a/web/l10n/en.json
+++ b/web/l10n/en.json
@@ -89,6 +89,10 @@
"attributeMailSmtpUsername": "Mail: SMTP Username",
"attributeMailSmtpPassword": "Mail: SMTP Password",
"attributeUiDisableReport": "UI: Disable Report",
+ "attributeUiDisableVehicleFetures": "UI: Disable Vehicle Fetures",
+ "attributeUiDisableDrivers": "UI: Disable Drivers",
+ "attributeUiDisableComputedAttributes": "UI: Disable Computed Attributes",
+ "attributeUiDisableCalendars": "UI: Disable Calendars",
"errorTitle": "Error",
"errorGeneral": "Invalid parameters or constraints violation",
"errorConnection": "Connection error",