From e042dbc8f28faa005019744abf0d8c80340902bf Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Fri, 7 Oct 2016 13:45:58 +0500 Subject: - Draw trip route on click - Add some object class checks - Add missed imports --- web/app/view/MapController.js | 9 ++++++++- web/app/view/ReportController.js | 27 ++++++++++++++++++++++++++- web/app/view/StateController.js | 9 ++++++--- 3 files changed, 40 insertions(+), 5 deletions(-) (limited to 'web/app') diff --git a/web/app/view/MapController.js b/web/app/view/MapController.js index ac2188e..59fd285 100644 --- a/web/app/view/MapController.js +++ b/web/app/view/MapController.js @@ -19,6 +19,11 @@ Ext.define('Traccar.view.MapController', { extend: 'Ext.app.ViewController', alias: 'controller.map', + requires: [ + 'Traccar.model.Position', + 'Traccar.model.Device' + ], + config: { listen: { controller: { @@ -294,7 +299,9 @@ Ext.define('Traccar.view.MapController', { }, selectReport: function (position, center) { - this.selectMarker(this.reportMarkers[position.get('id')], center); + if (position instanceof Traccar.model.Position) { + this.selectMarker(this.reportMarkers[position.get('id')], center); + } }, selectFeature: function (feature) { diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js index 8e1aa71..fefa88a 100644 --- a/web/app/view/ReportController.js +++ b/web/app/view/ReportController.js @@ -22,6 +22,8 @@ Ext.define('Traccar.view.ReportController', { requires: [ 'Traccar.AttributeFormatter', + 'Traccar.model.Position', + 'Traccar.model.ReportTrip', 'Traccar.view.ReportConfigDialog', 'Traccar.store.ReportEventTypes' ], @@ -112,7 +114,15 @@ Ext.define('Traccar.view.ReportController', { }, onClearClick: function () { + var reportType = this.lookupReference('reportTypeField').getValue(); + this.clearReport(reportType); + }, + + clearReport: function (reportType) { this.getView().getStore().removeAll(); + if (reportType === 'trips') { + Ext.getStore('ReportRoute').removeAll(); + } }, onSelectionChange: function (selected) { @@ -130,9 +140,24 @@ Ext.define('Traccar.view.ReportController', { selectReport: function (position, center) { if (position instanceof Traccar.model.Position) { this.getView().getSelectionModel().select([position], false, true); + } else if (position instanceof Traccar.model.ReportTrip) { + this.selectTrip(position); } }, + selectTrip: function (trip) { + var from, to; + from = new Date(trip.get('startTime')); + to = new Date(trip.get('endTime')); + Ext.getStore('ReportRoute').load({ + params: { + deviceId: trip.get('deviceId'), + from: from.toISOString(), + to: to.toISOString() + } + }); + }, + downloadCsv: function (requestUrl, requestParams) { Ext.Ajax.request({ url: requestUrl, @@ -170,7 +195,7 @@ Ext.define('Traccar.view.ReportController', { onTypeChange: function (combobox, newValue, oldValue) { if (oldValue !== null) { - this.onClearClick(); + this.clearReport(oldValue); } if (newValue === 'route') { diff --git a/web/app/view/StateController.js b/web/app/view/StateController.js index 8a19494..b018808 100644 --- a/web/app/view/StateController.js +++ b/web/app/view/StateController.js @@ -23,6 +23,7 @@ Ext.define('Traccar.view.StateController', { 'Traccar.AttributeFormatter', 'Traccar.model.Attribute', 'Traccar.model.AttributeAlias', + 'Traccar.model.Position', 'Traccar.view.AttributeAliasDialog' ], @@ -149,9 +150,11 @@ Ext.define('Traccar.view.StateController', { }, selectReport: function (position) { - this.deviceId = null; - this.position = position; - this.updatePosition(); + if (position instanceof Traccar.model.Position) { + this.deviceId = null; + this.position = position; + this.updatePosition(); + } }, clearReport: function (store) { -- cgit v1.2.3 From 55a2a72f1260e4a1ca394c31498762d2fb32ec1c Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Fri, 7 Oct 2016 13:52:58 +0500 Subject: Rename variable --- web/app/view/ReportController.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'web/app') diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js index fefa88a..ff5d32f 100644 --- a/web/app/view/ReportController.js +++ b/web/app/view/ReportController.js @@ -137,11 +137,11 @@ Ext.define('Traccar.view.ReportController', { } }, - selectReport: function (position, center) { - if (position instanceof Traccar.model.Position) { - this.getView().getSelectionModel().select([position], false, true); - } else if (position instanceof Traccar.model.ReportTrip) { - this.selectTrip(position); + selectReport: function (object, center) { + if (object instanceof Traccar.model.Position) { + this.getView().getSelectionModel().select([object], false, true); + } else if (object instanceof Traccar.model.ReportTrip) { + this.selectTrip(object); } }, -- cgit v1.2.3