aboutsummaryrefslogtreecommitdiffstats
path: root/ecomp-sdk-app/src/main/webapp/static/fusion/raptor/ebz/report_search.js
blob: d2194224eea32e15bcf0909c8558b02734c0090d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
app.controller("reportSearchController", ['$scope','$rootScope','$http','$timeout',function ($scope,$rootScope,$http,$timeout) { 
    
	$http.get('raptor.htm?action=report.search.execute&r_page=0').then(
		function(result){$scope.searchdData = result.data;		  
	});
	  
	$scope.runReport = function(){
			var searchParams = '';
			if($scope.reportId && $scope.reportId!=''){
				searchParams = '&rep_id='+$scope.reportId+'&rep_id_options='+$scope.operatorRepId.index;
			}
			if($scope.reportName && $scope.reportName!=''){
				searchParams = searchParams+'&rep_name='+$scope.reportName+'&rep_name_options='+$scope.operatorRepName.index;
			}

			console.log('raptor.htm?action=report.search.execute&r_page='+(paginationOptions.pageNumber-1)+searchParams);
			$http.get('raptor.htm?action=report.search.execute&r_page='+(paginationOptions.pageNumber-1)+searchParams).then(
					function(result){$scope.searchdData = result.data;		  
				});
			//quantum/raptor.htm?action=report.search.execute&rep_id=1000&rep_id_options=2&rep_name=cross&rep_name_options=2
	};


	var paginationOptions = {
		    pageNumber: 1,
		    pageSize: 5,
		    sort: null
	};
	  
	$scope.gridOptions = {
	  paginationPageSizes: [5],
	  paginationPageSize: 5,
	  useExternalPagination: true,
	  columnDefs: [],
	  data: [],
	  enableGridMenu: true,
	  enableSelectAll: true,
	  exporterMenuPdf: false,
	  exporterMenuCsv: false,
	  exporterCsvFilename: 'myFile.csv',
	  exporterPdfDefaultStyle: {fontSize: 9},
	  exporterPdfTableStyle: {margin: [30, 30, 30, 30]},
	  exporterPdfTableHeaderStyle: {fontSize: 10, bold: true, italics: true, color: 'red'},
	  exporterPdfHeader: { text: "My Header", style: 'headerStyle' },
	  exporterPdfFooter: function ( currentPage, pageCount ) {
	    return { text: currentPage.toString() + ' of ' + pageCount.toString(), style: 'footerStyle' };
	  },
	  exporterPdfCustomFormatter: function ( docDefinition ) {
	    docDefinition.styles.headerStyle = { fontSize: 22, bold: true };
	    docDefinition.styles.footerStyle = { fontSize: 10, bold: true };
	    return docDefinition;
	  },
	  exporterPdfOrientation: 'portrait',
	  exporterPdfPageSize: 'LETTER',
	  exporterPdfMaxGridWidth: 500,
	  exporterCsvLinkElement: angular.element(document.querySelectorAll(".custom-csv-link-location")),
	  onRegisterApi: function(gridApi) {
		    $scope.gridApi = gridApi;
		    gridApi.pagination.on.paginationChanged($scope, function (newPage, pageSize) {
			      paginationOptions.pageNumber = newPage;
			      paginationOptions.pageSize = pageSize;
			      $scope.runReport();
			    });
			  }
			};


	var getPage = function() {
		$scope.gridOptions.columnDefs = [];
		$scope.searchdData.columns[0].forEach(function(entry) {
			if(entry.columnTitle=='Run'){
				$scope.gridOptions.columnDefs.push({ displayName: entry.columnTitle, field: entry.columnId+'==drillDownLink', enableSorting: false,
				cellTemplate: '<div class="ui-grid-cell-contents"><a ng-href="#/report_run/{{COL_FIELD.substr(39)}}" class="ion-arrow-right-b" style="font-size:20px;"></a></div>'
				});
			} else if(entry.columnTitle=='Edit'){
				$scope.gridOptions.columnDefs.push({ displayName: entry.columnTitle, field: entry.columnId+'==drillDownLink', enableSorting: false,
					cellTemplate: '<div class="ui-grid-cell-contents"><a ng-href="{{COL_FIELD}}" class="ion-edit" style="font-size:20px;"></a></div>'
				});
			} else if(entry.columnTitle=='Delete'){
				$scope.gridOptions.columnDefs.push({ displayName: entry.columnTitle, field: entry.columnId+'==drillDownLink', enableSorting: false,
					cellTemplate: '<div class="ui-grid-cell-contents"><a href=""  ng-click="grid.appScope.deleteReport(COL_FIELD,row)" class="ion-trash-b" style="font-size:20px;"></a></div>'
				});
			}  else if(entry.columnTitle=='Copy'){
				$scope.gridOptions.columnDefs.push({ displayName: entry.columnTitle, field: entry.columnId+'==drillDownLink', enableSorting: false,
					cellTemplate: '<div class="ui-grid-cell-contents"><a ng-href="{{COL_FIELD}}" class="ion-document-text" style="font-size:20px;"></a></div>'
				});
			} else if(entry.columnTitle=='Schedule'){
				//$scope.gridOptions.columnDefs.push({ displayName: entry.columnTitle, field: entry.columnId+'==drillDownLink',
					//  cellTemplate: '<div class="ui-grid-cell-contents"><a ng-href="{{COL_FIELD}}" class="full-linear-icon-calendar" style="font-size:20px;font-weight: bold;"></a></div>'
				//});
			} else if(entry.columnTitle=='No'){
			} else {
					$scope.gridOptions.columnDefs.push({ displayName: entry.columnTitle, field: entry.columnId+'==displayValue'});
			}
		});
		$scope.gridOptions.data = $scope.searchdData.rows[0];
		$scope.gridOptions.paginationPageSizes= [$scope.searchdData.metaReport.pageSize];
		$scope.gridOptions.paginationPageSize= $scope.searchdData.metaReport.pageSize;
		$scope.gridOptions.totalItems = $scope.searchdData.metaReport.totalSize;
	};

	$scope.$watch("searchdData",function(newValue,oldValue) {
		if($scope.searchdData){
			getPage();
		}
	});

	$scope.operatorsRepId = [{index: 0, value: 'Equal To', title: 'Equal To', alias:'Equal To'},
	                 {index: 1, value: 'Less Than', title: 'Less Than', alias:'Less Than'},
	                 {index: 2, value: 'Greater Than', title: 'Greater Than', alias:'Greater Than'}];
	$scope.operatorsRepName = [{index: 0, value: 'Starts With', title: 'Starts With', alias:'Starts With'},
                        {index:1, value: 'Ends With', title: 'Ends With', alias:'Ends With'},
                        {index: 2, value: 'Contains', title: 'Contains', alias:'Contains'}];
	
	$scope.deleteReport = function(reportDeleteUrl,row) {
		if (confirm("Please confirm: Are you sure you want to delete report #" + reportDeleteUrl.substr(41) + "?")) {
			$http.get(reportDeleteUrl).then(
					function(result){
						if(result.data=='deleted:true'){
							var index = $scope.gridOptions.data.indexOf(row.entity);
							$scope.gridOptions.data.splice(index, 1);
							alert("Report deleted.");
						} else {
							alert("Report not deleted.");
						}
					}
				);
		}
	};

	$timeout(function() {
		$rootScope.isViewRendering = false;
		});


}]);