diff options
Diffstat (limited to 'web/app/view')
-rw-r--r-- | web/app/view/MapMarkerController.js | 11 | ||||
-rw-r--r-- | web/app/view/ReportController.js | 55 |
2 files changed, 34 insertions, 32 deletions
diff --git a/web/app/view/MapMarkerController.js b/web/app/view/MapMarkerController.js index 71a1583..596cffb 100644 --- a/web/app/view/MapMarkerController.js +++ b/web/app/view/MapMarkerController.js @@ -31,7 +31,8 @@ Ext.define('Traccar.view.MapMarkerController', { controller: { '*': { selectdevice: 'selectDevice', - selectreport: 'selectReport' + selectreport: 'selectReport', + showsingleevent: 'showSingleEvent' } }, store: { @@ -65,6 +66,10 @@ Ext.define('Traccar.view.MapMarkerController', { this.liveRouteLength = Traccar.app.getAttributePreference('web.liveRouteLength', 10); }, + showSingleEvent: function () { + this.singleEvent = true; + }, + getDeviceColor: function (device) { switch (device.get('status')) { case 'online': @@ -248,9 +253,9 @@ Ext.define('Traccar.view.MapMarkerController', { } else if (geometry) { this.getView().getMapView().fit(geometry, this.getView().getMap().getSize()); } - if (Traccar.app.hasEventId) { + if (this.singleEvent) { + this.singleEvent = false; this.fireEvent('selectreport', data[0], false); - Traccar.app.hasEventId = false; } }, diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js index 32a44df..e1a64e6 100644 --- a/web/app/view/ReportController.js +++ b/web/app/view/ReportController.js @@ -32,7 +32,8 @@ Ext.define('Traccar.view.ReportController', { listen: { controller: { '*': { - selectdevice: 'selectDevice' + selectdevice: 'selectDevice', + showsingleevent: 'showSingleEvent' }, 'map': { selectreport: 'selectReport' @@ -47,25 +48,6 @@ Ext.define('Traccar.view.ReportController', { } }, - init: function () { - var eventId = Ext.Object.fromQueryString(window.location.search).eventId; - if (eventId) { - this.lookupReference('reportTypeField').setValue('events'); - Ext.getStore('Events').load({ - params: { - id: eventId - }, - callback: function (records, operation, success) { - if (success) { - Ext.getStore('ReportEvents').add(records); - } - } - }); - Traccar.app.hasEventId = true; - Traccar.app.removeUrlParameter('eventId'); - } - }, - hideReports: function () { Traccar.app.showReports(false); }, @@ -234,18 +216,33 @@ Ext.define('Traccar.view.ReportController', { } } }); - } else if (Traccar.app.hasEventId && data.length > 0) { - this.getView().getSelectionModel().select([data[0]], false, true); - this.getView().getView().focusRow(data[0]); - if (Traccar.app.isMobile()) { - Traccar.app.showReports(true); - } else { - this.getView().expand(); - } - Traccar.app.hasEventId = false; } }, + showSingleEvent: function (eventId) { + this.lookupReference('reportTypeField').setValue('events'); + Ext.getStore('Events').load({ + id: eventId, + scope: this, + callback: function (records, operation, success) { + if (success) { + Ext.getStore('ReportEvents').add(records); + if (records.length > 0) { + if (!records[0].get('positionId')) { + if (Traccar.app.isMobile()) { + Traccar.app.showReports(true); + } else { + this.getView().expand(); + } + } + this.getView().getSelectionModel().select([records[0]], false, true); + this.getView().getView().focusRow(records[0]); + } + } + } + }); + }, + downloadFile: function (requestUrl, requestParams) { Ext.Ajax.request({ url: requestUrl, |