aboutsummaryrefslogtreecommitdiff
path: root/web/app
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2017-12-28 21:52:37 +1300
committerGitHub <noreply@github.com>2017-12-28 21:52:37 +1300
commit1a3ac155bb9185f0d97ca81e5fbb3c9c3b2a55a8 (patch)
tree3403fc98502d7a1778d0290b3a903aad6eab2dde /web/app
parent19768f9c88958207a20a81bdfe7ee630bf400973 (diff)
parent77a645466f0e3fae1c0125e8baadd5dea29d1935 (diff)
downloadtrackermap-web-1a3ac155bb9185f0d97ca81e5fbb3c9c3b2a55a8.tar.gz
trackermap-web-1a3ac155bb9185f0d97ca81e5fbb3c9c3b2a55a8.tar.bz2
trackermap-web-1a3ac155bb9185f0d97ca81e5fbb3c9c3b2a55a8.zip
Merge pull request #634 from Abyss777/disable_device
Implement disabling devices
Diffstat (limited to 'web/app')
-rw-r--r--web/app/model/Device.js3
-rw-r--r--web/app/view/dialog/Device.js12
-rw-r--r--web/app/view/dialog/DeviceController.js29
-rw-r--r--web/app/view/dialog/User.js2
-rw-r--r--web/app/view/edit/Devices.js15
-rw-r--r--web/app/view/edit/Users.js2
-rw-r--r--web/app/view/permissions/Devices.js8
7 files changed, 65 insertions, 6 deletions
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..2f7f80ee 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 result = '', status = record.get('status');
+ 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,