diff options
-rw-r--r-- | web/app.css | 4 | ||||
-rw-r--r-- | web/app/model/Device.js | 3 | ||||
-rw-r--r-- | web/app/view/dialog/Device.js | 12 | ||||
-rw-r--r-- | web/app/view/dialog/DeviceController.js | 29 | ||||
-rw-r--r-- | web/app/view/dialog/User.js | 2 | ||||
-rw-r--r-- | web/app/view/edit/Devices.js | 15 | ||||
-rw-r--r-- | web/app/view/edit/Users.js | 2 | ||||
-rw-r--r-- | web/app/view/permissions/Devices.js | 8 | ||||
-rw-r--r-- | web/l10n/en.json | 2 |
9 files changed, 70 insertions, 7 deletions
diff --git a/web/app.css b/web/app.css index 0bf0c6df..e06bb66e 100644 --- a/web/app.css +++ b/web/app.css @@ -8,6 +8,10 @@ background-color: rgba(255, 84, 104, 0.3); } +.view-item-disabled { + opacity: 0.5; +} + .toolbar-header-style { background-color: #5fa2dd !important; } diff --git a/web/app/model/Device.js b/web/app/model/Device.js index 9de5828d..df6b09be 100644 --- a/web/app/model/Device.js +++ b/web/app/model/Device.js @@ -56,6 +56,9 @@ Ext.define('Traccar.model.Device', { name: 'groupId', type: 'int' }, { + name: 'disabled', + type: 'boolean' + }, { name: 'geofenceIds' }, { name: 'attributes' diff --git a/web/app/view/dialog/Device.js b/web/app/view/dialog/Device.js index c024bf3c..50a5e79c 100644 --- a/web/app/view/dialog/Device.js +++ b/web/app/view/dialog/Device.js @@ -19,9 +19,11 @@ Ext.define('Traccar.view.dialog.Device', { extend: 'Traccar.view.dialog.BaseEdit', requires: [ - 'Traccar.view.ClearableComboBox' + 'Traccar.view.ClearableComboBox', + 'Traccar.view.dialog.DeviceController' ], + controller: 'device', title: Strings.sharedDevice, items: { @@ -82,6 +84,14 @@ Ext.define('Traccar.view.dialog.Device', { '<td>{name}</td></tr></table>'; } } + }, { + xtype: 'checkboxfield', + inputValue: true, + uncheckedValue: false, + name: 'disabled', + fieldLabel: Strings.sharedDisabled, + hidden: true, + reference: 'disabledField' }] }] } diff --git a/web/app/view/dialog/DeviceController.js b/web/app/view/dialog/DeviceController.js new file mode 100644 index 00000000..d6ddc58b --- /dev/null +++ b/web/app/view/dialog/DeviceController.js @@ -0,0 +1,29 @@ +/* + * 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.view.dialog.DeviceController', { + extend: 'Traccar.view.dialog.BaseEditController', + alias: 'controller.device', + + init: function () { + if (Traccar.app.getUser().get('admin')) { + this.lookupReference('disabledField').setHidden(false); + } + } + +}); diff --git a/web/app/view/dialog/User.js b/web/app/view/dialog/User.js index be27a51a..45ecd6eb 100644 --- a/web/app/view/dialog/User.js +++ b/web/app/view/dialog/User.js @@ -104,7 +104,7 @@ Ext.define('Traccar.view.dialog.User', { inputValue: true, uncheckedValue: false, name: 'disabled', - fieldLabel: Strings.userDisabled, + fieldLabel: Strings.sharedDisabled, disabled: true, reference: 'disabledField' }, { diff --git a/web/app/view/edit/Devices.js b/web/app/view/edit/Devices.js index 39550b6c..6e581d4f 100644 --- a/web/app/view/edit/Devices.js +++ b/web/app/view/edit/Devices.js @@ -81,11 +81,14 @@ Ext.define('Traccar.view.edit.Devices', { viewConfig: { enableTextSelection: true, getRowClass: function (record) { - var status = record.get('status'); + var status = record.get('status'), result = ''; + if (record.get('disabled')) { + result = 'view-item-disabled '; + } if (status) { - return Ext.getStore('DeviceStatuses').getById(status).get('color'); + result += Ext.getStore('DeviceStatuses').getById(status).get('color'); } - return null; + return result; } }, @@ -125,6 +128,12 @@ Ext.define('Traccar.view.edit.Devices', { }, renderer: Traccar.AttributeFormatter.getFormatter('groupId') }, { + text: Strings.sharedDisabled, + dataIndex: 'disabled', + renderer: Traccar.AttributeFormatter.getFormatter('disabled'), + hidden: true, + filter: 'boolean' + }, { text: Strings.sharedGeofences, dataIndex: 'geofenceIds', hidden: true, diff --git a/web/app/view/edit/Users.js b/web/app/view/edit/Users.js index fd371990..b0a67ffd 100644 --- a/web/app/view/edit/Users.js +++ b/web/app/view/edit/Users.js @@ -133,7 +133,7 @@ Ext.define('Traccar.view.edit.Users', { hidden: true, filter: 'boolean' }, { - text: Strings.userDisabled, + text: Strings.sharedDisabled, dataIndex: 'disabled', renderer: Traccar.AttributeFormatter.getFormatter('disabled'), filter: 'boolean' diff --git a/web/app/view/permissions/Devices.js b/web/app/view/permissions/Devices.js index d120eacb..3180b107 100644 --- a/web/app/view/permissions/Devices.js +++ b/web/app/view/permissions/Devices.js @@ -58,6 +58,14 @@ Ext.define('Traccar.view.permissions.Devices', { hidden: true, filter: 'string' }, { + text: Strings.sharedDisabled, + dataIndex: 'disabled', + flex: 1, + minWidth: Traccar.Style.columnWidthNormal, + renderer: Traccar.AttributeFormatter.getFormatter('disabled'), + hidden: true, + filter: 'boolean' + }, { text: Strings.groupDialog, dataIndex: 'groupId', flex: 1, diff --git a/web/l10n/en.json b/web/l10n/en.json index 880f2117..78a2b650 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -74,6 +74,7 @@ "sharedSavedCommands": "Saved Commands", "sharedNew": "New…", "sharedShowAddress": "Show Address", + "sharedDisabled": "Disabled", "attributeSpeedLimit": "Speed Limit", "attributeReportIgnoreOdometer": "Report: Ignore Odometer", "attributeMaintenanceStart": "Maintenance: Start", @@ -111,7 +112,6 @@ "userPassword": "Password", "userAdmin": "Admin", "userRemember": "Remember", - "userDisabled": "Disabled", "userExpirationTime": "Expiration", "userDeviceLimit": "Device Limit", "userUserLimit": "User Limit", |