From 7a6de316942316466622f9bfa64691c4ba433b88 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Mon, 8 Aug 2016 18:05:07 +0500 Subject: - Added deviceId in SummaryReport - Response bare array for application/json - Migrate to /api/reports/route in web-interface --- src/org/traccar/reports/Events.java | 9 ++++---- src/org/traccar/reports/Route.java | 9 ++++---- src/org/traccar/reports/Summary.java | 9 ++++---- src/org/traccar/reports/model/SummaryReport.java | 8 +++++++ web/app/Application.js | 3 ++- web/app/store/ReportRoute.js | 28 ++++++++++++++++++++++++ web/app/view/MapController.js | 2 +- web/app/view/Report.js | 2 +- web/app/view/ReportController.js | 4 ++-- 9 files changed, 57 insertions(+), 17 deletions(-) create mode 100644 web/app/store/ReportRoute.js diff --git a/src/org/traccar/reports/Events.java b/src/org/traccar/reports/Events.java index 9e14bd3db..fbbd3131b 100644 --- a/src/org/traccar/reports/Events.java +++ b/src/org/traccar/reports/Events.java @@ -5,7 +5,7 @@ import java.util.Collection; import java.util.Date; import javax.json.Json; -import javax.json.JsonObjectBuilder; +import javax.json.JsonArrayBuilder; import org.traccar.Context; import org.traccar.model.Event; @@ -19,12 +19,13 @@ public final class Events { public static String getJson(long userId, Collection deviceIds, Collection groupIds, Collection types, Date from, Date to) throws SQLException { - JsonObjectBuilder json = Json.createObjectBuilder(); + JsonArrayBuilder json = Json.createArrayBuilder(); for (long deviceId: ReportUtils.getDeviceList(deviceIds, groupIds)) { Context.getPermissionsManager().checkDevice(userId, deviceId); for (String type : types) { - json.add(String.valueOf(deviceId), JsonConverter.arrayToJson(Context.getDataManager() - .getEvents(deviceId, type, from, to))); + for (Event event : Context.getDataManager().getEvents(deviceId, type, from, to)) { + json.add(JsonConverter.objectToJson(event)); + } } } return json.build().toString(); diff --git a/src/org/traccar/reports/Route.java b/src/org/traccar/reports/Route.java index 7abe5c194..9622151e7 100644 --- a/src/org/traccar/reports/Route.java +++ b/src/org/traccar/reports/Route.java @@ -5,7 +5,7 @@ import java.util.Collection; import java.util.Date; import javax.json.Json; -import javax.json.JsonObjectBuilder; +import javax.json.JsonArrayBuilder; import org.traccar.Context; import org.traccar.model.Position; @@ -19,11 +19,12 @@ public final class Route { public static String getJson(long userId, Collection deviceIds, Collection groupIds, Date from, Date to) throws SQLException { - JsonObjectBuilder json = Json.createObjectBuilder(); + JsonArrayBuilder json = Json.createArrayBuilder(); for (long deviceId: ReportUtils.getDeviceList(deviceIds, groupIds)) { Context.getPermissionsManager().checkDevice(userId, deviceId); - json.add(String.valueOf(deviceId), JsonConverter.arrayToJson(Context.getDataManager() - .getPositions(deviceId, from, to))); + for (Position position : Context.getDataManager().getPositions(deviceId, from, to)) { + json.add(JsonConverter.objectToJson(position)); + } } return json.build().toString(); } diff --git a/src/org/traccar/reports/Summary.java b/src/org/traccar/reports/Summary.java index 474562002..e0da1c87e 100644 --- a/src/org/traccar/reports/Summary.java +++ b/src/org/traccar/reports/Summary.java @@ -7,7 +7,7 @@ import java.util.Collection; import java.util.Date; import javax.json.Json; -import javax.json.JsonObjectBuilder; +import javax.json.JsonArrayBuilder; import org.traccar.Context; import org.traccar.helper.DistanceCalculator; @@ -23,9 +23,10 @@ public final class Summary { private static SummaryReport calculateGeneralResult(long deviceId, Date from, Date to) throws SQLException { SummaryReport result = new SummaryReport(); + result.setDeviceId(deviceId); + result.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName()); Collection positions = Context.getDataManager().getPositions(deviceId, from, to); if (positions != null && !positions.isEmpty()) { - result.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName()); Position previousPosition = null; double speedSum = 0; for (Position position : positions) { @@ -45,10 +46,10 @@ public final class Summary { public static String getJson(long userId, Collection deviceIds, Collection groupIds, Date from, Date to) throws SQLException { - JsonObjectBuilder json = Json.createObjectBuilder(); + JsonArrayBuilder json = Json.createArrayBuilder(); for (long deviceId: ReportUtils.getDeviceList(deviceIds, groupIds)) { Context.getPermissionsManager().checkDevice(userId, deviceId); - json.add(String.valueOf(deviceId), JsonConverter.objectToJson(calculateGeneralResult(deviceId, from, to))); + json.add(JsonConverter.objectToJson(calculateGeneralResult(deviceId, from, to))); } return json.build().toString(); } diff --git a/src/org/traccar/reports/model/SummaryReport.java b/src/org/traccar/reports/model/SummaryReport.java index aed3915f1..e42727eaf 100644 --- a/src/org/traccar/reports/model/SummaryReport.java +++ b/src/org/traccar/reports/model/SummaryReport.java @@ -2,6 +2,14 @@ package org.traccar.reports.model; public class SummaryReport { + private long deviceId; + public long getDeviceId() { + return deviceId; + } + public void setDeviceId(long deviceId) { + this.deviceId = deviceId; + } + private String deviceName; public String getDeviceName() { return deviceName; diff --git a/web/app/Application.js b/web/app/Application.js index ec942d21e..e3bf2ba31 100644 --- a/web/app/Application.js +++ b/web/app/Application.js @@ -56,7 +56,8 @@ Ext.define('Traccar.Application', { 'AllGeofences', 'Notifications', 'AllNotifications', - 'GeofenceTypes' + 'GeofenceTypes', + 'ReportRoute' ], controllers: [ diff --git a/web/app/store/ReportRoute.js b/web/app/store/ReportRoute.js new file mode 100644 index 000000000..18e28d63d --- /dev/null +++ b/web/app/store/ReportRoute.js @@ -0,0 +1,28 @@ +/* + * Copyright 2015- Anton Tananaev (anton.tananaev@gmail.com) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +Ext.define('Traccar.store.ReportRoute', { + extend: 'Ext.data.Store', + model: 'Traccar.model.Position', + + proxy: { + type: 'rest', + url: '/api/reports/route', + headers : { + 'Accept' : 'application/json' + } + } +}); diff --git a/web/app/view/MapController.js b/web/app/view/MapController.js index 6ef9f91e6..ab7461cf0 100644 --- a/web/app/view/MapController.js +++ b/web/app/view/MapController.js @@ -35,7 +35,7 @@ Ext.define('Traccar.view.MapController', { add: 'updateLatest', update: 'updateLatest' }, - '#Positions': { + '#ReportRoute': { load: 'loadReport', clear: 'clearReport' } diff --git a/web/app/view/Report.js b/web/app/view/Report.js index 4261b9040..b4578915a 100644 --- a/web/app/view/Report.js +++ b/web/app/view/Report.js @@ -24,7 +24,7 @@ Ext.define('Traccar.view.Report', { ], controller: 'report', - store: 'Positions', + store: 'ReportRoute', title: Strings.reportTitle, diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js index 4fe7c62b8..04e07e640 100644 --- a/web/app/view/ReportController.js +++ b/web/app/view/ReportController.js @@ -49,7 +49,7 @@ Ext.define('Traccar.view.ReportController', { toDate.getFullYear(), toDate.getMonth(), toDate.getDate(), toTime.getHours(), toTime.getMinutes(), toTime.getSeconds(), toTime.getMilliseconds()); - store = Ext.getStore('Positions'); + store = Ext.getStore('ReportRoute'); store.load({ params: { deviceId: deviceId, @@ -61,7 +61,7 @@ Ext.define('Traccar.view.ReportController', { }, onClearClick: function () { - Ext.getStore('Positions').removeAll(); + Ext.getStore('ReportRoute').removeAll(); }, onSelectionChange: function (selected) { -- cgit v1.2.3