aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/reports/Events.java9
-rw-r--r--src/org/traccar/reports/Route.java9
-rw-r--r--src/org/traccar/reports/Summary.java9
-rw-r--r--src/org/traccar/reports/model/SummaryReport.java8
-rw-r--r--web/app/Application.js3
-rw-r--r--web/app/store/ReportRoute.js28
-rw-r--r--web/app/view/MapController.js2
-rw-r--r--web/app/view/Report.js2
-rw-r--r--web/app/view/ReportController.js4
9 files changed, 57 insertions, 17 deletions
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<Long> deviceIds, Collection<Long> groupIds,
Collection<String> 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<Long> deviceIds, Collection<Long> 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<Position> 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<Long> deviceIds, Collection<Long> 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) {