From 0a35d3a7c4aa2968e2b8d4b73cfbd486c9fc625b Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 29 Mar 2017 21:56:33 +1300 Subject: More devices table improvements --- web/app/view/edit/Devices.js | 25 ++++++++++++++++++++++--- web/app/view/edit/DevicesController.js | 6 +++++- 2 files changed, 27 insertions(+), 4 deletions(-) (limited to 'web/app/view/edit') diff --git a/web/app/view/edit/Devices.js b/web/app/view/edit/Devices.js index 9393b432..42291f0b 100644 --- a/web/app/view/edit/Devices.js +++ b/web/app/view/edit/Devices.js @@ -90,7 +90,7 @@ Ext.define('Traccar.view.edit.Devices', { columns: { defaults: { - flex: 2, + flex: 1, minWidth: Traccar.Style.columnWidthNormal }, items: [{ @@ -132,7 +132,6 @@ Ext.define('Traccar.view.edit.Devices', { }, { text: Strings.deviceStatus, dataIndex: 'status', - flex: 1, filter: { type: 'list', labelField: 'name', @@ -151,7 +150,27 @@ Ext.define('Traccar.view.edit.Devices', { }, { text: Strings.deviceLastUpdate, dataIndex: 'lastUpdate', - renderer: Traccar.AttributeFormatter.getFormatter('lastUpdate') + renderer: function (value, metaData, record) { + var status, seconds, interval; + + status = record.get('status'); + if (status) { + metaData.tdCls = Ext.getStore('DeviceStatuses').getById(status).get('color'); + } + + if (value) { + seconds = Math.floor((new Date() - value) / 1000); + interval = Math.floor(seconds / 86400); + if (interval > 1) { + return interval + ' ' + Strings.sharedDays; + } + interval = Math.floor(seconds / 3600); + if (interval > 1) { + return interval + ' ' + Strings.sharedHours; + } + return Math.floor(seconds / 60) + ' ' + Strings.sharedMinutes; + } + } }] } }); diff --git a/web/app/view/edit/DevicesController.js b/web/app/view/edit/DevicesController.js index 895f0fbd..0d18c186 100644 --- a/web/app/view/edit/DevicesController.js +++ b/web/app/view/edit/DevicesController.js @@ -52,10 +52,14 @@ Ext.define('Traccar.view.edit.DevicesController', { removeTitle: Strings.sharedDevice, init: function () { - var readonly, deviceReadonly; + var self = this, readonly, deviceReadonly; 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); + + setInterval(function () { + self.getView().getView().refresh(); + }, Traccar.Style.refreshPeriod); }, onGeofencesClick: function () { -- cgit v1.2.3