api reporting stuff
This commit is contained in:
+80
-112
@@ -35,7 +35,8 @@ $.stretchyReporting.changeSeparator= function(sepChar, decChar, indFormat) {
|
||||
};
|
||||
|
||||
function fnRecordsDisplay(){
|
||||
//oSettings isn't defined when table first created but coding around to not call this method until after it is.
|
||||
// oSettings isn't defined when table first created but coding around to not
|
||||
// call this method until after it is.
|
||||
// if (typeof(oSettings) != "undefined") return oSettings.fnRecordsDisplay()
|
||||
// else return 0;
|
||||
return oSettings.fnRecordsDisplay();
|
||||
@@ -671,8 +672,8 @@ setupReportListSuccess = function(data, textStatus, jqXHR){
|
||||
|
||||
function copyXLSon() {
|
||||
showMsg("Turning them on");
|
||||
$('#ToolTables_MRPshowTable_0').css('display', 'inline');
|
||||
$('#ToolTables_MRPshowTable_1').css('display', 'inline');
|
||||
$('#ToolTables_FRshowTable_0').css('display', 'inline');
|
||||
$('#ToolTables_FRshowTable_1').css('display', 'inline');
|
||||
ttInstances = TableTools.fnGetMasters();
|
||||
for (i in ttInstances) {
|
||||
ttInstances[i].that.fnResizeButtons();
|
||||
@@ -683,8 +684,8 @@ function copyXLSon() {
|
||||
|
||||
function copyXLSoff() {
|
||||
showMsg("Turning them off");
|
||||
$('#ToolTables_MRPshowTable_0').css('display', 'none');
|
||||
$('#ToolTables_MRPshowTable_1').css('display', 'none');
|
||||
$('#ToolTables_FRshowTable_0').css('display', 'none');
|
||||
$('#ToolTables_FRshowTable_1').css('display', 'none');
|
||||
filteredCopyXLSon = false;
|
||||
}
|
||||
|
||||
@@ -767,22 +768,22 @@ return 'var selectSuccess = function(data, textStatus,jqXHR){' +
|
||||
|
||||
function createChart(theData) {
|
||||
|
||||
MRPData = new google.visualization.DataTable();
|
||||
MRPData.addColumn('string', dataTableDef.aoColumns[0].sTitle);
|
||||
MRPData.addColumn('number', dataTableDef.aoColumns[1].sTitle);
|
||||
MRPData.addRows(dataTableDef.aaData.length);
|
||||
FRData = new google.visualization.DataTable();
|
||||
FRData.addColumn('string', dataTableDef.aoColumns[0].sTitle);
|
||||
FRData.addColumn('number', dataTableDef.aoColumns[1].sTitle);
|
||||
FRData.addRows(dataTableDef.aaData.length);
|
||||
|
||||
var ii = 0;
|
||||
var numberData;
|
||||
var dblQuotePos;
|
||||
for (var i in dataTableDef.aaData)
|
||||
{
|
||||
MRPData.setValue(ii, 0, dataTableDef.aaData[i][0]);
|
||||
FRData.setValue(ii, 0, dataTableDef.aaData[i][0]);
|
||||
|
||||
if (dataTableDef.aoColumns[1].sType == "title-numeric" && dataTableDef.aaData[i][1].substr(0, 11) == '<span title') numberData = getOrigTitleNumericValue(dataTableDef.aaData[i][1])
|
||||
else numberData = dataTableDef.aaData[i][1];
|
||||
|
||||
MRPData.setValue(ii, 1, numberData);
|
||||
FRData.setValue(ii, 1, numberData);
|
||||
ii = ii + 1;
|
||||
};
|
||||
}
|
||||
@@ -888,8 +889,8 @@ function convertCRtoBR(str) {
|
||||
|
||||
function showTableReport() {
|
||||
isNewTable = true;
|
||||
$('#StretchyReportOutput').html( '<table cellpadding="0" cellspacing="1" border="0" class="display" id="MRPshowTable" width=100%></table>' );
|
||||
oTable = $('#MRPshowTable').dataTable(dataTableDef);
|
||||
$('#StretchyReportOutput').html( '<table cellpadding="0" cellspacing="1" border="0" class="display" id="FRshowTable" width=100%></table>' );
|
||||
oTable = $('#FRshowTable').dataTable(dataTableDef);
|
||||
oSettings = oTable.fnSettings();
|
||||
|
||||
showMsg("1st recs displayed is: " + fnRecordsDisplay());
|
||||
@@ -899,15 +900,18 @@ function showTableReport() {
|
||||
|
||||
function showChartReport(rptSubType) {
|
||||
/*
|
||||
$('#StretchyReportOutput').html( '<table><tr><td width="25%" valign="top"><table cellpadding="0" cellspacing="1" border="0" class="display" id="MRPshowTable" width=100%></table></td><td width="75%" align="right"><div id=MRPshowChart></div></td></tr></table>' );
|
||||
$('#MRPshowTable').dataTable(dataTableDef);
|
||||
* $('#StretchyReportOutput').html( '<table><tr><td width="25%" valign="top"><table
|
||||
* cellpadding="0" cellspacing="1" border="0" class="display" id="FRshowTable"
|
||||
* width=100%></table></td><td width="75%" align="right"><div
|
||||
* id=FRshowChart></div></td></tr></table>' );
|
||||
* $('#FRshowTable').dataTable(dataTableDef);
|
||||
*/
|
||||
|
||||
$('#StretchyReportOutput').html( '<table><tr></td><td width="100%" align="center"><div id=MRPshowChart></div></td></tr></table>' );
|
||||
$('#StretchyReportOutput').html( '<table><tr></td><td width="100%" align="center"><div id=FRshowChart></div></td></tr></table>' );
|
||||
|
||||
|
||||
var options;
|
||||
var MRPchart;
|
||||
var FRchart;
|
||||
|
||||
switch(rptSubType)
|
||||
{
|
||||
@@ -918,18 +922,19 @@ var MRPchart;
|
||||
// chartArea: {left:0,top:0, width:"100%",height:"100%"}
|
||||
};
|
||||
|
||||
MRPchart = new google.visualization.PieChart(document.getElementById('MRPshowChart'));
|
||||
MRPchart.draw(MRPData, options);
|
||||
FRchart = new google.visualization.PieChart(document.getElementById('FRshowChart'));
|
||||
FRchart.draw(FRData, options);
|
||||
break;
|
||||
case "Bar":
|
||||
options = {
|
||||
width: 1000, height: 600
|
||||
//vAxis: {title: 'xxxxxxx', titleTextStyle: {color: 'red'}}
|
||||
// vAxis: {title: 'xxxxxxx', titleTextStyle: {color:
|
||||
// 'red'}}
|
||||
// chartArea: {left:0,top:0, width:"100%",height:"100%"}
|
||||
};
|
||||
|
||||
MRPchart = new google.visualization.BarChart(document.getElementById('MRPshowChart'));
|
||||
MRPchart.draw(MRPData, options);
|
||||
FRchart = new google.visualization.BarChart(document.getElementById('FRshowChart'));
|
||||
FRchart.draw(FRData, options);
|
||||
break;
|
||||
default:
|
||||
alert("System Error: Unknown Chart Type: " + rptSubType);
|
||||
@@ -940,74 +945,30 @@ var MRPchart;
|
||||
|
||||
|
||||
/*
|
||||
var MRPchart = new google.visualization.PieChart(document.getElementById('MRPshowChart'));
|
||||
MRPchart.draw(MRPData, {legend: 'right', is3D: true, width: 400, height: 500, chartArea: {left:0,top:0, width:"100%",height:"100%"}});
|
||||
* var FRchart = new
|
||||
* google.visualization.PieChart(document.getElementById('FRshowChart'));
|
||||
* FRchart.draw(FRData, {legend: 'right', is3D: true, width: 400, height: 500,
|
||||
* chartArea: {left:0,top:0, width:"100%",height:"100%"}});
|
||||
*/
|
||||
/*
|
||||
var chartCategories = [];
|
||||
for (var i in dataTableDef.aaData)
|
||||
{
|
||||
chartCategories.push(dataTableDef.aaData[i][0]);
|
||||
}
|
||||
|
||||
var chartSeries = [];
|
||||
|
||||
for (var i in dataTableDef.aaData)
|
||||
{
|
||||
chartSeries.push({data: dataTableDef.aaData[i][1]});
|
||||
}
|
||||
|
||||
|
||||
var MRPchart = new Highcharts.Chart({
|
||||
chart: {
|
||||
renderTo: 'MRPshowChart',
|
||||
defaultSeriesType: 'bar'
|
||||
},
|
||||
title: {
|
||||
text: 'Historic World Population by Region'
|
||||
},
|
||||
xAxis: {
|
||||
categories: chartCategories,
|
||||
title: {
|
||||
text: null
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
min: -5000000,
|
||||
title: {
|
||||
text: 'Population (millions)',
|
||||
align: 'high'
|
||||
}
|
||||
},
|
||||
tooltip: {
|
||||
formatter: function() {
|
||||
return ''+
|
||||
this.series.name +': '+ this.y +' millions';
|
||||
}
|
||||
},
|
||||
plotOptions: {
|
||||
bar: {
|
||||
dataLabels: {
|
||||
enabled: true
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
layout: 'vertical',
|
||||
align: 'right',
|
||||
verticalAlign: 'top',
|
||||
x: -100,
|
||||
y: 100,
|
||||
floating: true,
|
||||
borderWidth: 1,
|
||||
backgroundColor: '#FFFFFF',
|
||||
shadow: true
|
||||
},
|
||||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
series: chartSeries
|
||||
});
|
||||
* var chartCategories = []; for (var i in dataTableDef.aaData) {
|
||||
* chartCategories.push(dataTableDef.aaData[i][0]); }
|
||||
*
|
||||
* var chartSeries = [];
|
||||
*
|
||||
* for (var i in dataTableDef.aaData) { chartSeries.push({data:
|
||||
* dataTableDef.aaData[i][1]}); }
|
||||
*
|
||||
*
|
||||
* var FRchart = new Highcharts.Chart({ chart: { renderTo: 'FRshowChart',
|
||||
* defaultSeriesType: 'bar' }, title: { text: 'Historic World Population by
|
||||
* Region' }, xAxis: { categories: chartCategories, title: { text: null } },
|
||||
* yAxis: { min: -5000000, title: { text: 'Population (millions)', align: 'high' } },
|
||||
* tooltip: { formatter: function() { return ''+ this.series.name +': '+ this.y +'
|
||||
* millions'; } }, plotOptions: { bar: { dataLabels: { enabled: true } } },
|
||||
* legend: { layout: 'vertical', align: 'right', verticalAlign: 'top', x: -100,
|
||||
* y: 100, floating: true, borderWidth: 1, backgroundColor: '#FFFFFF', shadow:
|
||||
* true }, credits: { enabled: false }, series: chartSeries });
|
||||
*/
|
||||
|
||||
|
||||
@@ -1023,9 +984,8 @@ function getReportData(inParams, successFunction) {
|
||||
function getReportDataAuth(inParams, successFunction) {
|
||||
|
||||
var inQueryParameters = {};
|
||||
inQueryParameters["MRP_rptDB"] = rptDB;
|
||||
for (var i in inParams ) inQueryParameters["MRP_" + i] = inParams[i];
|
||||
|
||||
for (var i in inParams ) inQueryParameters["FR_" + i] = inParams[i];
|
||||
if (rptDB > "") inQueryParameters["FR_rptDB"] = rptDB;
|
||||
|
||||
OAuthSimple().reset();
|
||||
var OAuthProcess = (new OAuthSimple()).sign({
|
||||
@@ -1054,19 +1014,36 @@ function getReportDataAuth(inParams, successFunction) {
|
||||
error:function(jqXHR, textStatus, errorThrown){
|
||||
showMsgE("getReportData IS Auth Error: ");
|
||||
var jsonValue = jQuery.parseJSON(jqXHR.responseText);
|
||||
alert(jqXHR.responseText);
|
||||
alert(textStatus);
|
||||
alert("Response Text: " + jqXHR.responseText + " Text Status: " + textStatus);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function buildReportParms(inParams) {
|
||||
|
||||
var paramCount = 1;
|
||||
var reportParams = "";
|
||||
for (var i in inParams )
|
||||
{
|
||||
if (paramCount > 1) reportParams += "&"
|
||||
reportParams += encodeURIComponent("FR_" + i) + "=" + encodeURIComponent(inParams[i]);
|
||||
paramCount = paramCount + 1;
|
||||
}
|
||||
if (rptDB > "")
|
||||
{
|
||||
if (paramCount > 1) reportParams += "&"
|
||||
reportParams = encodeURIComponent("FR_rptDB") + "=" + encodeURIComponent(rptDB);
|
||||
}
|
||||
|
||||
return reportParams
|
||||
}
|
||||
|
||||
function getReportDataNoAuth(inParams, successFunction) {
|
||||
|
||||
var inQueryParameters = "MRP_rptDB=" + rptDB;
|
||||
for (var i in inParams ) inQueryParameters += "&" + encodeURIComponent("MRP_" + i) + "=" + encodeURIComponent(inParams[i]);
|
||||
|
||||
var inQueryParameters = buildReportParms(inParams);
|
||||
showMsgE("getReportDataNoAuth: " + inQueryParameters);
|
||||
$.ajax({
|
||||
url: RESTUrl,
|
||||
@@ -1082,29 +1059,19 @@ function getReportDataNoAuth(inParams, successFunction) {
|
||||
success: successFunction,
|
||||
error:function(jqXHR, textStatus, errorThrown){
|
||||
showMsgE("getReportDataNoAuth: ");
|
||||
alert(jqXHR.responseText);
|
||||
alert(textStatus);
|
||||
alert(errorThrown);
|
||||
alert("Response Text: " + jqXHR.responseText + " Text Status: " + textStatus + " Error Thrown: " + errorThrown);
|
||||
var jsonValue = jQuery.parseJSON(jqXHR.responseText);
|
||||
alert(jsonValue.value + "for " + jsonValue.field + " : " + jsonValue.code);
|
||||
alert("Last Alert - " + jsonValue.value + "for " + jsonValue.field + " : " + jsonValue.code);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
function getExportCSV(inParams) {
|
||||
|
||||
var inQueryParameters = "?" + encodeURIComponent("MRP_rptDB") + "=" + encodeURIComponent(rptDB);
|
||||
//var paramCount = 1;
|
||||
for (var i in inParams )
|
||||
{
|
||||
//if (paramCount > 1) inQueryParameters += "&"
|
||||
//else inQueryParameters += "?";
|
||||
inQueryParameters += "&" + encodeURIComponent("MRP_" + i) + "=" + encodeURIComponent(inParams[i]);
|
||||
//paramCount = paramCount + 1;
|
||||
}
|
||||
|
||||
var fullExportUrl = RESTUrl + inQueryParameters + "&exportCSV=true";
|
||||
var inQueryParameters = buildReportParms(inParams);
|
||||
var fullExportUrl = RESTUrl + "?" + inQueryParameters + "&exportCSV=true";
|
||||
showMsg("full export url: " + fullExportUrl);
|
||||
var loadHTML = '<iframe id=rptLoadingFrame src="' + fullExportUrl + '" frameborder="0" onload="jQuery.stretchyReporting.clearLoadingImg();" width="100%" height="600px" style="background:url(';
|
||||
loadHTML += "'" + loadingImg + "'" + ') no-repeat scroll 50% 100px;"><p>Your browser does not support iframes.</p></iframe>';
|
||||
@@ -1365,7 +1332,8 @@ function redrawOutput() {
|
||||
|
||||
function setTableSizeLimit() {
|
||||
if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ // test for MSIE x.x;
|
||||
var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
|
||||
var ieversion=new Number(RegExp.$1) // capture x.x portion and store as
|
||||
// a number
|
||||
if (ieversion>=9) return 50000
|
||||
else return 3000;
|
||||
}
|
||||
+1
-1
@@ -16,6 +16,6 @@
|
||||
<script type="text/javascript" src="${resValue}/libs/DataTables-1.8.2/extras/TableTools/media/js/TableTools.min.js"></script>
|
||||
<script type="text/javascript" src="${resValue}/libs/jquery.i18n.properties-min-1.0.9.js"></script>
|
||||
<script type="text/javascript" src="${resValue}/libs/OAuthSimple.js"></script>
|
||||
<script type="text/javascript" src="${resValue}/stretchyreporting/stretchyreporting-0.966.js"></script>
|
||||
<script type="text/javascript" src="${resValue}/stretchyreporting/stretchyreporting-0.967.js"></script>
|
||||
|
||||
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
|
||||
|
||||
@@ -34,21 +34,6 @@ public class ReportingApiResource {
|
||||
@Autowired
|
||||
private ReadExtraDataAndReportingService ReadExtraDataAndReportingService;
|
||||
|
||||
// private Response makeCORSExport(ResponseBuilder req, String exportFilename,
|
||||
// String returnMethod) {
|
||||
// ResponseBuilder rb = req
|
||||
// .header("Access-Control-Allow-Origin", "*")
|
||||
// .header("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
|
||||
// .header("Content-Disposition",
|
||||
// "attachment;filename=" + exportFilename);
|
||||
//
|
||||
// if (!"".equals(returnMethod)) {
|
||||
// rb.header("Access-Control-Allow-Headers", returnMethod);
|
||||
// }
|
||||
//
|
||||
// return rb.build();
|
||||
// }
|
||||
|
||||
@GET
|
||||
@Consumes({ MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML })
|
||||
@Produces({ MediaType.APPLICATION_JSON, "application/x-msdownload" })
|
||||
@@ -56,8 +41,8 @@ public class ReportingApiResource {
|
||||
|
||||
MultivaluedMap<String, String> queryParams = uriInfo
|
||||
.getQueryParameters();
|
||||
String name = queryParams.getFirst("MRP_Name");
|
||||
String type = queryParams.getFirst("MRP_Type");
|
||||
String name = queryParams.getFirst("FR_Name");
|
||||
String type = queryParams.getFirst("FR_Type");
|
||||
String exportCSV = queryParams.getFirst("exportCSV");
|
||||
|
||||
Map<String, String> extractedQueryParams = new HashMap<String, String>();
|
||||
@@ -67,10 +52,9 @@ public class ReportingApiResource {
|
||||
String pValue;
|
||||
for (String k : keys) {
|
||||
|
||||
if (k.startsWith("MRP_")) {
|
||||
pKey = "${" + k.substring(4) + "}";
|
||||
if (k.startsWith("FR_")) {
|
||||
pKey = "${" + k.substring(3) + "}";
|
||||
pValue = queryParams.get(k).get(0);
|
||||
|
||||
extractedQueryParams.put(pKey, pValue);
|
||||
}
|
||||
}
|
||||
@@ -83,9 +67,15 @@ public class ReportingApiResource {
|
||||
return Response.ok().entity(result).build();
|
||||
}
|
||||
|
||||
StreamingOutput result = this.ReadExtraDataAndReportingService.retrieveReportCSV(name, type, extractedQueryParams);
|
||||
StreamingOutput result = this.ReadExtraDataAndReportingService
|
||||
.retrieveReportCSV(name, type, extractedQueryParams);
|
||||
|
||||
return Response.ok().entity(result).header("Content-Disposition","attachment;filename=" + name.replaceAll(" ", "") + ".csv").build();
|
||||
return Response
|
||||
.ok()
|
||||
.entity(result)
|
||||
.header("Content-Disposition",
|
||||
"attachment;filename=" + name.replaceAll(" ", "")
|
||||
+ ".csv").build();
|
||||
}
|
||||
|
||||
@GET
|
||||
|
||||
Reference in New Issue
Block a user