appDS2.controller("reportRunController", ['$scope','$rootScope','$routeParams','$http','dateFilter', '$window', '$timeout', 'rowSorter', function ($scope,$rootScope,$routeParams,$http,dateFilter,$window,$timeout,rowSorter) { $scope.dateformat = "MM/dd/yyyy"; $scope.datetimeformat = "MM/dd/yyyy hh:mm a"; $scope.showFormFields = false; $scope.showGrid = false; $scope.showChart = false; $scope.showBackButton = false; $scope.reportData = {}; $scope.reportData.allowEdit = false; $scope.formFieldSelectedValues = {}; $scope.showFormFieldIds = false; $scope.showFormFieldId = { value: false }; $scope.isInProgress = true; if($routeParams.reportUrlParams.indexOf("parent___params===")>-1) { $scope.showBackButton = true; $scope.parentReportUrlParams = $routeParams.reportUrlParams.substring($routeParams.reportUrlParams.indexOf("parent___params===")+18); $scope.currentReportUrlParams = $routeParams.reportUrlParams.substring(0,$routeParams.reportUrlParams.indexOf("parent___params===")); } else { $scope.currentReportUrlParams = $routeParams.reportUrlParams; } // console.log($routeParams.reportUrlParams); var parseQueryString = function( queryString ) { var params = {}, queries, temp, i, l; // Split into key/value pairs queries = queryString.split("&"); // Convert the array of strings into an object for ( i = 0, l = queries.length; i < l; i++ ) { temp = queries[i].split('='); //console.log(temp[0]); //console.log(temp[0] != "refresh"); if(temp[0] && temp[0] != "refresh") params[temp[0]] = temp[1]; } return params; }; var convertQueryString = function(queryString) { var keys = ""; var str = ""; keys = Object.keys(queryString); //console.log(keys); for ( i = 0, l = keys.length; i < l; i++ ) { str += keys[i]+"="+queryString[keys[i]] + "&"; } return str; //queryString = } $scope.backToParentReport = function (){ $window.location.href = "report#/report_run/"+$scope.parentReportUrlParams } $scope.urlParams = parseQueryString($scope.currentReportUrlParams); $scope.reportChartURL = 'report#/report_chart/'+$scope.urlParams.c_master; $scope.reportEditURL = 'report#/report_wizard/'+$scope.urlParams.c_master; $http.get('raptor.htm?action=report.run.container&'+$scope.currentReportUrlParams).then( function(response){ // console.log(response); $scope.isInProgress = false; $scope.reportData = response.data; // console.log('reportData report run container response',$scope.reportData); if ($scope.reportData.reportTitle) { $scope.reportData.reportHeading = $scope.reportData.reportTitle; if ($scope.reportData.reportSubTitle) { $scope.reportData.reportSubTitle = $scope.reportData.reportSubTitle; } } else $scope.reportData.reportHeading = $scope.reportData.reportName; if(!$scope.urlParams.hideChart && $scope.reportData.chartAvailable && $scope.reportData.totalRows>1){ // console.log('raptor.htm?action=chart.run&'+convertQueryString($scope.urlParams)); $http.get('raptor.htm?action=chart.run&'+convertQueryString($scope.urlParams)).then( function(response){ $scope.showChart = true; document.getElementById('chartiframe').contentWindow.document.write(response.data); document.getElementById('chartiframe').contentWindow.document.close(); }); } if($scope.reportData.displayForm && $scope.reportData.formFieldList && $scope.reportData.formFieldList.length>0 && !$scope.urlParams.hideFormFields){ $scope.showFormFields = true; } }); $scope.getFormFieldSelectedValuesAsURL = function(){ var formFieldsUrl = ''; $scope.reportData.formFieldList.forEach(function(formField) { if(formField.fieldType==='LIST_BOX') { if($scope.formFieldSelectedValues && $scope.formFieldSelectedValues[formField.fieldId] && $scope.formFieldSelectedValues[formField.fieldId].value != '') { formFieldsUrl = formFieldsUrl+formField.fieldId+'='+$scope.formFieldSelectedValues[formField.fieldId].value+'&'; } } else if(formField.fieldType==='LIST_MULTI_SELECT') { if($scope.formFieldSelectedValues[formField.fieldId].length >0) { for (var i = 0; i < $scope.formFieldSelectedValues[formField.fieldId].length; i++) { if($scope.formFieldSelectedValues[formField.fieldId][i].defaultValue){ formFieldsUrl = formFieldsUrl+formField.fieldId+'='+$scope.formFieldSelectedValues[formField.fieldId][i].value+'&'; } } } } else if((formField.fieldType === 'text' || formField.fieldType === 'TEXT') && formField.validationType === 'DATE'){ formFieldsUrl = formFieldsUrl+formField.fieldId+'='+dateFilter($scope.formFieldSelectedValues[formField.fieldId],$scope.dateformat)+'&'; } else if((formField.fieldType === 'text' || formField.fieldType === 'TEXT') && formField.validationType === 'TIMESTAMP_MIN'){ formFieldsUrl = formFieldsUrl+formField.fieldId+'='+dateFilter($scope.formFieldSelectedValues[formField.fieldId],$scope.datetimeformat)+'&'; } else if((formField.fieldType === 'text' || formField.fieldType === 'TEXT') && $scope.formFieldSelectedValues[formField.fieldId] && $scope.formFieldSelectedValues[formField.fieldId] != ''){ formFieldsUrl = formFieldsUrl+formField.fieldId+'='+$scope.formFieldSelectedValues[formField.fieldId]+'&'; } }); return formFieldsUrl; } $scope.runReport = function(pagination){ var formFieldsUrl = $scope.getFormFieldSelectedValuesAsURL(); /*if ($scope.reportData.reportTitle) $scope.reportData.reportHeading = $scope.reportData.reportTitle; else $scope.reportData.reportHeading = $scope.reportData.reportName;*/ // console.log("pagination"); if(!pagination) { //console.log("refreshed ..."); $scope.gridOptions.pageNumber = 1; paginationOptions.pageNumber = 1; paginationOptions.pageSize = $scope.reportData.pageSize; //console.log($scope.gridOptions); $scope.gridOptions.paginationCurrentPage = 1; $scope.gridOptions.paginationPageSizes= [$scope.reportData.pageSize]; $scope.gridOptions.paginationPageSize= $scope.reportData.pageSize; if($scope.reportData.totalRows<14){ $scope.gridHeight = ($scope.reportData.totalRows+7)*30+'px'; } else{ $scope.gridHeight = '400px'; } $scope.gridOptions.totalItems = $scope.reportData.totalRows; $scope.gridOptions.data= $scope.reportData.reportDataRows; $scope.gridOptions.exporterPdfHeader.text= $scope.reportData.reportName; } $scope.currentReportUrlParams = 'c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'&display_content=Y&r_page='+(paginationOptions.pageNumber-1); // console.log('raptor.htm?action=report.run.container&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'refresh=Y&display_content=Y&r_page='+(paginationOptions.pageNumber-1)); $http.get('raptor.htm?action=report.run.container&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'refresh=Y&display_content=Y&r_page='+(paginationOptions.pageNumber-1)).then( function(response){ $scope.reportData = response.data; if ($scope.reportData.reportTitle) { $scope.reportData.reportHeading = $scope.reportData.reportTitle; if ($scope.reportData.reportSubTitle) { $scope.reportData.reportSubTitle = $scope.reportData.reportSubTitle; } } else $scope.reportData.reportHeading = $scope.reportData.reportName; if($scope.reportData.errormessage) { //console.log($scope.reportData); var stacktraceFP = $scope.reportData.stacktrace.substring(0, $scope.reportData.stacktrace.indexOf(":")+1); document.getElementById('errorDiv').innerHTML = stacktraceFP + " " + $scope.reportData.errormessage; //console.log(document.getElementById('errorDiv').innerHtml); //console.log(stacktraceFP + " " + $scope.reportData.errormessage); } if(!pagination) { if(!$scope.urlParams.hideChart && $scope.reportData.chartAvailable && $scope.reportData.totalRows>1){ // console.log('raptor.htm?action=chart.run&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'display_content=Y&r_page='+(paginationOptions.pageNumber-1)); $http.get('raptor.htm?action=chart.run&c_master='+$scope.urlParams.c_master+'&'+formFieldsUrl+'display_content=Y&r_page='+(paginationOptions.pageNumber-1)).then( function(response) { // console.log(response.data); $scope.showChart = true; // console.log('response.data',response.data); document.getElementById('chartiframe').contentWindow.document.write(response.data); document.getElementById('chartiframe').contentWindow.document.close(); }); } else { $scope.showChart = false; } } if($scope.reportData.displayForm && $scope.reportData.formFieldList && $scope.reportData.formFieldList.length>0 && !$scope.urlParams.hideFormFields && !$scope.reportData.hideFormFieldsAfterRun){ $scope.showFormFields = true; } else { $scope.showFormFields = false; } }); }; var paginationOptions = { pageNumber: 1, pageSize: 5, sort: null }; var correctTotalPaginationTemplate = //same as normal template, but fixed totals: {{(((grid.options.paginationCurrentPage-1)*grid.options.paginationPageSize)+1)}} {{(grid.options.paginationCurrentPage*grid.options.paginationPageSize>grid.options.totalItems?grid.options.totalItems:grid.options.paginationCurrentPage*grid.options.paginationPageSize)}} "