aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web/app/view/Events.js2
-rw-r--r--web/app/view/GridPanel.js34
-rw-r--r--web/app/view/Report.js5
-rw-r--r--web/app/view/State.js2
-rw-r--r--web/app/view/Statistics.js2
-rw-r--r--web/app/view/edit/Attributes.js5
-rw-r--r--web/app/view/edit/Calendars.js5
-rw-r--r--web/app/view/edit/ComputedAttributes.js5
-rw-r--r--web/app/view/edit/Devices.js6
-rw-r--r--web/app/view/edit/Drivers.js5
-rw-r--r--web/app/view/edit/Geofences.js5
-rw-r--r--web/app/view/edit/Groups.js5
-rw-r--r--web/app/view/edit/Notifications.js5
-rw-r--r--web/app/view/edit/SavedCommands.js5
-rw-r--r--web/app/view/edit/Users.js5
-rw-r--r--web/app/view/permissions/Base.js2
-rw-r--r--web/app/view/permissions/Calendars.js6
-rw-r--r--web/app/view/permissions/ComputedAttributes.js6
-rw-r--r--web/app/view/permissions/Devices.js3
-rw-r--r--web/app/view/permissions/Drivers.js6
-rw-r--r--web/app/view/permissions/Geofences.js6
-rw-r--r--web/app/view/permissions/Groups.js3
-rw-r--r--web/app/view/permissions/Notifications.js6
-rw-r--r--web/app/view/permissions/SavedCommands.js6
24 files changed, 52 insertions, 88 deletions
diff --git a/web/app/view/Events.js b/web/app/view/Events.js
index ca1f3ea5..3f4b5757 100644
--- a/web/app/view/Events.js
+++ b/web/app/view/Events.js
@@ -17,7 +17,7 @@
*/
Ext.define('Traccar.view.Events', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'eventsView',
requires: [
diff --git a/web/app/view/GridPanel.js b/web/app/view/GridPanel.js
new file mode 100644
index 00000000..848af081
--- /dev/null
+++ b/web/app/view/GridPanel.js
@@ -0,0 +1,34 @@
+/*
+ * 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.GridPanel', {
+ extend: 'Ext.grid.Panel',
+ xtype: 'customGridPanel',
+
+ requires: [
+ 'Ext.grid.filters.Filters'
+ ],
+
+ plugins: 'gridfilters',
+
+ viewConfig: {
+ enableTextSelection: true,
+ getRowClass: function () {
+ return this.enableTextSelection ? 'x-selectable' : '';
+ }
+ }
+});
diff --git a/web/app/view/Report.js b/web/app/view/Report.js
index 1289e6b2..f77cfca6 100644
--- a/web/app/view/Report.js
+++ b/web/app/view/Report.js
@@ -20,7 +20,8 @@ Ext.define('Traccar.view.Report', {
xtype: 'reportView',
requires: [
- 'Traccar.view.ReportController'
+ 'Traccar.view.ReportController',
+ 'Traccar.view.GridPanel'
],
controller: 'report',
@@ -70,7 +71,7 @@ Ext.define('Traccar.view.Report', {
layout: 'card',
items: [{
- xtype: 'grid',
+ xtype: 'customGridPanel',
itemId: 'grid',
listeners: {
selectionchange: 'onSelectionChange'
diff --git a/web/app/view/State.js b/web/app/view/State.js
index d161251c..690c097f 100644
--- a/web/app/view/State.js
+++ b/web/app/view/State.js
@@ -16,7 +16,7 @@
*/
Ext.define('Traccar.view.State', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'stateView',
requires: [
diff --git a/web/app/view/Statistics.js b/web/app/view/Statistics.js
index 55e4d507..f033e03a 100644
--- a/web/app/view/Statistics.js
+++ b/web/app/view/Statistics.js
@@ -15,7 +15,7 @@
*/
Ext.define('Traccar.view.Statistics', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'statisticsView',
requires: [
diff --git a/web/app/view/edit/Attributes.js b/web/app/view/edit/Attributes.js
index 2dd06be2..cb07eda1 100644
--- a/web/app/view/edit/Attributes.js
+++ b/web/app/view/edit/Attributes.js
@@ -16,17 +16,14 @@
*/
Ext.define('Traccar.view.edit.Attributes', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'attributesView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.AttributesController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'attributes',
tbar: {
diff --git a/web/app/view/edit/Calendars.js b/web/app/view/edit/Calendars.js
index 1c4a2ece..23f20e25 100644
--- a/web/app/view/edit/Calendars.js
+++ b/web/app/view/edit/Calendars.js
@@ -17,17 +17,14 @@
*/
Ext.define('Traccar.view.edit.Calendars', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'calendarsView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.CalendarsController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'calendars',
store: 'Calendars',
diff --git a/web/app/view/edit/ComputedAttributes.js b/web/app/view/edit/ComputedAttributes.js
index 5d344988..9f0b9396 100644
--- a/web/app/view/edit/ComputedAttributes.js
+++ b/web/app/view/edit/ComputedAttributes.js
@@ -17,17 +17,14 @@
*/
Ext.define('Traccar.view.edit.ComputedAttributes', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'computedAttributesView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.ComputedAttributesController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'computedAttributes',
store: 'ComputedAttributes',
diff --git a/web/app/view/edit/Devices.js b/web/app/view/edit/Devices.js
index d2ba0f3d..39550b6c 100644
--- a/web/app/view/edit/Devices.js
+++ b/web/app/view/edit/Devices.js
@@ -16,11 +16,10 @@
*/
Ext.define('Traccar.view.edit.Devices', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'devicesView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.AttributeFormatter',
'Traccar.view.edit.DevicesController',
'Traccar.view.ArrayListFilter',
@@ -29,8 +28,6 @@ Ext.define('Traccar.view.edit.Devices', {
controller: 'devices',
- plugins: 'gridfilters',
-
store: 'VisibleDevices',
stateful: true,
@@ -82,6 +79,7 @@ Ext.define('Traccar.view.edit.Devices', {
},
viewConfig: {
+ enableTextSelection: true,
getRowClass: function (record) {
var status = record.get('status');
if (status) {
diff --git a/web/app/view/edit/Drivers.js b/web/app/view/edit/Drivers.js
index 59d8d2c4..9aac8cd6 100644
--- a/web/app/view/edit/Drivers.js
+++ b/web/app/view/edit/Drivers.js
@@ -17,17 +17,14 @@
*/
Ext.define('Traccar.view.edit.Drivers', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'driversView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.DriversController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'drivers',
store: 'Drivers',
diff --git a/web/app/view/edit/Geofences.js b/web/app/view/edit/Geofences.js
index 51fa7686..9c564bc3 100644
--- a/web/app/view/edit/Geofences.js
+++ b/web/app/view/edit/Geofences.js
@@ -16,17 +16,14 @@
*/
Ext.define('Traccar.view.edit.Geofences', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'geofencesView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.GeofencesController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'geofences',
store: 'Geofences',
diff --git a/web/app/view/edit/Groups.js b/web/app/view/edit/Groups.js
index 691df8ae..0808201d 100644
--- a/web/app/view/edit/Groups.js
+++ b/web/app/view/edit/Groups.js
@@ -16,18 +16,15 @@
*/
Ext.define('Traccar.view.edit.Groups', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'groupsView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.AttributeFormatter',
'Traccar.view.edit.GroupsController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'groups',
store: 'Groups',
diff --git a/web/app/view/edit/Notifications.js b/web/app/view/edit/Notifications.js
index 8bbdb711..e17100a4 100644
--- a/web/app/view/edit/Notifications.js
+++ b/web/app/view/edit/Notifications.js
@@ -17,17 +17,14 @@
*/
Ext.define('Traccar.view.edit.Notifications', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'notificationsView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.NotificationsController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'notifications',
store: 'Notifications',
diff --git a/web/app/view/edit/SavedCommands.js b/web/app/view/edit/SavedCommands.js
index b0cf89d0..794e95e4 100644
--- a/web/app/view/edit/SavedCommands.js
+++ b/web/app/view/edit/SavedCommands.js
@@ -17,17 +17,14 @@
*/
Ext.define('Traccar.view.edit.SavedCommands', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'savedCommandsView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.SavedCommandsController',
'Traccar.view.edit.Toolbar'
],
- plugins: 'gridfilters',
-
controller: 'savedCommands',
store: 'Commands',
diff --git a/web/app/view/edit/Users.js b/web/app/view/edit/Users.js
index d98d49ce..fd371990 100644
--- a/web/app/view/edit/Users.js
+++ b/web/app/view/edit/Users.js
@@ -17,11 +17,10 @@
*/
Ext.define('Traccar.view.edit.Users', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
xtype: 'usersView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.view.edit.UsersController',
'Traccar.view.edit.Toolbar'
],
@@ -29,8 +28,6 @@ Ext.define('Traccar.view.edit.Users', {
controller: 'users',
store: 'Users',
- plugins: 'gridfilters',
-
tbar: {
xtype: 'editToolbar',
scrollable: true,
diff --git a/web/app/view/permissions/Base.js b/web/app/view/permissions/Base.js
index 2b07d84c..57017531 100644
--- a/web/app/view/permissions/Base.js
+++ b/web/app/view/permissions/Base.js
@@ -16,7 +16,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
Ext.define('Traccar.view.permissions.Base', {
- extend: 'Ext.grid.Panel',
+ extend: 'Traccar.view.GridPanel',
requires: [
'Traccar.view.permissions.BaseController'
diff --git a/web/app/view/permissions/Calendars.js b/web/app/view/permissions/Calendars.js
index ff2796bb..3d08efca 100644
--- a/web/app/view/permissions/Calendars.js
+++ b/web/app/view/permissions/Calendars.js
@@ -20,12 +20,6 @@ Ext.define('Traccar.view.permissions.Calendars', {
extend: 'Traccar.view.permissions.Base',
xtype: 'linkCalendarsView',
- requires: [
- 'Ext.grid.filters.Filters'
- ],
-
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.sharedName,
diff --git a/web/app/view/permissions/ComputedAttributes.js b/web/app/view/permissions/ComputedAttributes.js
index 800717ce..19af72ad 100644
--- a/web/app/view/permissions/ComputedAttributes.js
+++ b/web/app/view/permissions/ComputedAttributes.js
@@ -20,12 +20,6 @@ Ext.define('Traccar.view.permissions.ComputedAttributes', {
extend: 'Traccar.view.permissions.Base',
xtype: 'linkComputedAttributesView',
- requires: [
- 'Ext.grid.filters.Filters'
- ],
-
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.sharedDescription,
diff --git a/web/app/view/permissions/Devices.js b/web/app/view/permissions/Devices.js
index 4cadafe4..d120eacb 100644
--- a/web/app/view/permissions/Devices.js
+++ b/web/app/view/permissions/Devices.js
@@ -20,12 +20,9 @@ Ext.define('Traccar.view.permissions.Devices', {
xtype: 'linkDevicesView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.AttributeFormatter'
],
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.sharedName,
diff --git a/web/app/view/permissions/Drivers.js b/web/app/view/permissions/Drivers.js
index f0ea2890..33cf2f76 100644
--- a/web/app/view/permissions/Drivers.js
+++ b/web/app/view/permissions/Drivers.js
@@ -20,12 +20,6 @@ Ext.define('Traccar.view.permissions.Drivers', {
extend: 'Traccar.view.permissions.Base',
xtype: 'linkDriversView',
- requires: [
- 'Ext.grid.filters.Filters'
- ],
-
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.sharedName,
diff --git a/web/app/view/permissions/Geofences.js b/web/app/view/permissions/Geofences.js
index 84135d3b..efdf18da 100644
--- a/web/app/view/permissions/Geofences.js
+++ b/web/app/view/permissions/Geofences.js
@@ -19,12 +19,6 @@ Ext.define('Traccar.view.permissions.Geofences', {
extend: 'Traccar.view.permissions.Base',
xtype: 'linkGeofencesView',
- requires: [
- 'Ext.grid.filters.Filters'
- ],
-
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.sharedName,
diff --git a/web/app/view/permissions/Groups.js b/web/app/view/permissions/Groups.js
index d3cad98e..91a639c0 100644
--- a/web/app/view/permissions/Groups.js
+++ b/web/app/view/permissions/Groups.js
@@ -20,12 +20,9 @@ Ext.define('Traccar.view.permissions.Groups', {
xtype: 'linkGroupsView',
requires: [
- 'Ext.grid.filters.Filters',
'Traccar.AttributeFormatter'
],
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.sharedName,
diff --git a/web/app/view/permissions/Notifications.js b/web/app/view/permissions/Notifications.js
index 6538e67d..9386d6d6 100644
--- a/web/app/view/permissions/Notifications.js
+++ b/web/app/view/permissions/Notifications.js
@@ -20,12 +20,6 @@ Ext.define('Traccar.view.permissions.Notifications', {
extend: 'Traccar.view.permissions.Base',
xtype: 'linkNotificationsView',
- requires: [
- 'Ext.grid.filters.Filters'
- ],
-
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.notificationType,
diff --git a/web/app/view/permissions/SavedCommands.js b/web/app/view/permissions/SavedCommands.js
index 106fad52..52b759bb 100644
--- a/web/app/view/permissions/SavedCommands.js
+++ b/web/app/view/permissions/SavedCommands.js
@@ -20,12 +20,6 @@ Ext.define('Traccar.view.permissions.SavedCommands', {
extend: 'Traccar.view.permissions.Base',
xtype: 'linkSavedCommandsView',
- requires: [
- 'Ext.grid.filters.Filters'
- ],
-
- plugins: 'gridfilters',
-
columns: {
items: [{
text: Strings.sharedDescription,