aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/org/traccar/api/resource/ReportResource.java23
-rw-r--r--web/app/model/ReportSummary.js2
-rw-r--r--web/app/view/ReportController.js24
-rw-r--r--web/l10n/en.json6
4 files changed, 29 insertions, 26 deletions
diff --git a/src/org/traccar/api/resource/ReportResource.java b/src/org/traccar/api/resource/ReportResource.java
index 0dc9ab6a4..d5687c741 100644
--- a/src/org/traccar/api/resource/ReportResource.java
+++ b/src/org/traccar/api/resource/ReportResource.java
@@ -17,12 +17,15 @@ import org.traccar.reports.Route;
import org.traccar.web.JsonConverter;
@Path("reports")
-@Consumes("application/json")
+@Consumes(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public class ReportResource extends BaseResource {
+ public static final String TEXT_CSV = "text/csv";
+ public static final String CONTENT_DISPOSITION_VALUE = "attachment; filename=report.csv";
+
@Path("route")
@GET
- @Produces("application/json")
+ @Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public Response getRouteJson(
@QueryParam("deviceId") final List<Long> deviceIds, @QueryParam("groupId") final List<Long> groupIds,
@QueryParam("from") String from, @QueryParam("to") String to) throws SQLException {
@@ -32,19 +35,19 @@ public class ReportResource extends BaseResource {
@Path("route")
@GET
- @Produces("text/csv")
+ @Produces(TEXT_CSV)
public Response getRouteCsv(
@QueryParam("deviceId") final List<Long> deviceIds, @QueryParam("groupId") final List<Long> groupIds,
@QueryParam("from") String from, @QueryParam("to") String to) throws SQLException {
return Response.ok(Route.getCsv(getUserId(), deviceIds, groupIds,
JsonConverter.parseDate(from), JsonConverter.parseDate(to)))
- .header("Content-Disposition", "attachment; filename=route.csv")
+ .header(javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION, CONTENT_DISPOSITION_VALUE)
.build();
}
@Path("events")
@GET
- @Produces("application/json")
+ @Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public Response getEventsJson(
@QueryParam("deviceId") final List<Long> deviceIds, @QueryParam("groupId") final List<Long> groupIds,
@QueryParam("type") final List<String> types,
@@ -55,20 +58,20 @@ public class ReportResource extends BaseResource {
@Path("events")
@GET
- @Produces("text/csv")
+ @Produces(TEXT_CSV)
public Response getEventsCsv(
@QueryParam("deviceId") final List<Long> deviceIds, @QueryParam("groupId") final List<Long> groupIds,
@QueryParam("type") final List<String> types,
@QueryParam("from") String from, @QueryParam("to") String to) throws SQLException {
return Response.ok(Events.getCsv(getUserId(), deviceIds, groupIds,
types, JsonConverter.parseDate(from), JsonConverter.parseDate(to)))
- .header("Content-Disposition", "attachment; filename=events.csv")
+ .header(javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION, CONTENT_DISPOSITION_VALUE)
.build();
}
@Path("summary")
@GET
- @Produces("application/json")
+ @Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
public Response getSummaryJson(
@QueryParam("deviceId") final List<Long> deviceIds, @QueryParam("groupId") final List<Long> groupIds,
@QueryParam("from") String from, @QueryParam("to") String to) throws SQLException {
@@ -78,13 +81,13 @@ public class ReportResource extends BaseResource {
@Path("summary")
@GET
- @Produces("text/csv")
+ @Produces(TEXT_CSV)
public Response getSummaryCsv(
@QueryParam("deviceId") final List<Long> deviceIds, @QueryParam("groupId") final List<Long> groupIds,
@QueryParam("from") String from, @QueryParam("to") String to) throws SQLException {
return Response.ok(Summary.getCsv(getUserId(), deviceIds, groupIds,
JsonConverter.parseDate(from), JsonConverter.parseDate(to)))
- .header("Content-Disposition", "attachment; filename=summary.csv")
+ .header(javax.ws.rs.core.HttpHeaders.CONTENT_DISPOSITION, CONTENT_DISPOSITION_VALUE)
.build();
}
diff --git a/web/app/model/ReportSummary.js b/web/app/model/ReportSummary.js
index 816dc76ab..7821e1c00 100644
--- a/web/app/model/ReportSummary.js
+++ b/web/app/model/ReportSummary.js
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2016 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.
diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js
index 7ff994202..ecc7b0f91 100644
--- a/web/app/view/ReportController.js
+++ b/web/app/view/ReportController.js
@@ -63,7 +63,7 @@ Ext.define('Traccar.view.ReportController', {
});
} else if (button.reference === "csvButton") {
url = this.getView().getStore().getProxy().url;
- this.doDownloadCsv(url, {
+ this.downloadCsv(url, {
deviceId: deviceId,
type: '%',
from: from.toISOString(),
@@ -95,7 +95,7 @@ Ext.define('Traccar.view.ReportController', {
}
},
- doDownloadCsv: function (requestUrl, requestParams) {
+ downloadCsv: function (requestUrl, requestParams) {
Ext.Ajax.request({
url: requestUrl,
method: 'GET',
@@ -104,7 +104,7 @@ Ext.define('Traccar.view.ReportController', {
Accept: 'text/csv'
},
success: function (response) {
- var disposition, filename, type, blob, url, downloadUrl, a;
+ var disposition, filename, type, blob, url, downloadUrl, elementA;
disposition = response.getResponseHeader('Content-Disposition');
filename = disposition.slice(disposition.indexOf("=") + 1, disposition.length);
type = response.getResponseHeader('Content-Type');
@@ -116,15 +116,15 @@ Ext.define('Traccar.view.ReportController', {
url = window.URL || window.webkitURL;
downloadUrl = URL.createObjectURL(blob);
if (filename) {
- a = document.createElement("a");
- a.href = downloadUrl;
- a.download = filename;
- document.body.appendChild(a);
- a.click();
+ elementA = document.createElement("a");
+ elementA.href = downloadUrl;
+ elementA.download = filename;
+ document.body.appendChild(elementA);
+ elementA.click();
}
setTimeout(function () {
- url.revokeObjectURL(downloadUrl);
- }, 100);
+ url.revokeObjectURL(downloadUrl);
+ }, 100);
}
}
});
@@ -218,12 +218,12 @@ Ext.define('Traccar.view.ReportController', {
flex: 1,
renderer: Traccar.AttributeFormatter.getFormatter('distance')
}, {
- text: Strings.summaryAverageSpeed,
+ text: Strings.reportAverageSpeed,
dataIndex: 'averageSpeed',
flex: 1,
renderer: Traccar.AttributeFormatter.getFormatter('speed')
}, {
- text: Strings.summaryMaximumSpeed,
+ text: Strings.reportMaximumSpeed,
dataIndex: 'maxSpeed',
flex: 1,
renderer: Traccar.AttributeFormatter.getFormatter('speed')
diff --git a/web/l10n/en.json b/web/l10n/en.json
index 3c30353ac..b98e6d127 100644
--- a/web/l10n/en.json
+++ b/web/l10n/en.json
@@ -136,8 +136,8 @@
"reportRoute": "Route",
"reportEvents": "Events",
"reportSummary": "Summary",
- "reportCsv": "Csv",
+ "reportCsv": "CSV",
"reportDeviceName": "Device Name",
- "summaryAverageSpeed": "Average Speed",
- "summaryMaximumSpeed": "Maximum Speed"
+ "reportAverageSpeed": "Average Speed",
+ "reportMaximumSpeed": "Maximum Speed"
} \ No newline at end of file