2cf954270d5a8c9edf96562d1ed04d0b3a39d8de
[portal/sdk.git] /
1 import { AfterViewInit, Component, OnInit, ViewChild, Input, SimpleChange } from '@angular/core';
2 import { MatPaginator } from '@angular/material/paginator';
3 import { MatSort } from '@angular/material/sort';
4 import { MatTable, MatTableDataSource } from '@angular/material/table';
5 import { AllReportsDataSource, AllReportsItem } from './report-list-datasource';
6 import { HttpClient } from '@angular/common/http';
7 import { Router } from '@angular/router';
8 import { environment } from '../../../../environments/environment';
9 import { ReportListService } from './report-list.service';
10
11 @Component({
12   selector: 'app-all-reports',
13   templateUrl: './report-list.component.html',
14   styleUrls: ['./report-list.component.css']
15 })
16 export class ReportListComponent implements AfterViewInit, OnInit {
17   @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator;
18   @ViewChild(MatSort, {static: false} as any) sort: MatSort;
19   @ViewChild(MatTable, {static: false} as any) table: MatTable<AllReportsItem>;
20
21   @Input("reportId") reportId1 : string;
22
23
24   dataSource: AllReportsDataSource;
25   dataSource1 : any;
26   finalGETObj : {};
27   finalGETObjRowsArr : [][];
28   rowArr : {}[];
29   reportIdArr : string[];
30   toggle : boolean;
31   intermediateDisplayedColumns : string[];
32   displayedColumns : string[];
33   finalRowArr : AllReportsItem[];
34   rowObj : any;
35   reportId : string;
36   toggle1 : boolean;
37   showSpinner : boolean;
38   showDialog : boolean;
39   closable : boolean;
40   delete : boolean;
41   newReportId : string;
42   constructor(private _http : HttpClient, private _router : Router, private _reportListService : ReportListService){
43
44     this.showDialog = false;
45     this.closable = false;
46     this.delete = false;
47
48     this.initializeReportList();
49
50
51   }
52
53
54   initializeReportList()
55   {
56     
57     this.showSpinner = true;
58     this.dataSource = new AllReportsDataSource();
59     this.dataSource1 = new MatTableDataSource();
60     this.intermediateDisplayedColumns = new Array();
61
62
63     this.finalGETObj = new Object();
64
65     this.finalGETObj = new Object();
66     this.finalGETObjRowsArr = new Array();
67     this.rowArr = new Array();
68     this.reportIdArr = new Array();
69     this.toggle = false;
70     this.toggle1 = false;
71
72     this.finalRowArr = new Array();
73    
74
75     this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0")
76     .subscribe((responseObj) => {
77       this.finalGETObj = responseObj;
78       this.finalGETObjRowsArr = this.finalGETObj["rows"];
79
80       let j=0;
81       while(this.finalGETObj["columns"][0][j])
82       {
83         if(this.finalGETObj["columns"][0][j]["columnId"] !== "no")
84         {
85           this.intermediateDisplayedColumns.push(this.finalGETObj["columns"][0][j]["columnId"]);
86         }
87         j++;
88       }
89
90       this.displayedColumns = this.intermediateDisplayedColumns;
91
92       let i=0;
93
94       while(this.finalGETObjRowsArr[0][i])
95       {
96         this.rowArr = this.finalGETObjRowsArr[0][i];
97         this.rowObj = new Object();
98         let j=0;
99         while(this.rowArr[j])
100         {
101           
102
103           if(this.rowArr[j]["columnId"] === "rep_id")
104           {
105             this.rowObj["rep_id"] = this.rowArr[j]["searchresultField"]["displayValue"];
106             this.reportIdArr.push(this.rowArr[j]["searchresultField"]["displayValue"]);
107           }
108
109           if(this.rowArr[j]["columnId"] === "rep_name")
110           {
111             this.rowObj["rep_name"] = this.rowArr[j]["searchresultField"]["displayValue"];
112           }
113
114           if(this.rowArr[j]["columnId"] === "descr")
115           {
116             this.rowObj["descr"] = this.rowArr[j]["searchresultField"]["displayValue"];
117           }
118
119           if(this.rowArr[j]["columnId"] === "owner")
120           {
121             this.rowObj["owner"] = this.rowArr[j]["searchresultField"]["displayValue"];
122           }
123
124           if(this.rowArr[j]["columnId"] === "create_date")
125           {
126             this.rowObj["create_date"] = this.rowArr[j]["searchresultField"]["displayValue"];
127           }
128
129           if(this.rowArr[j]["columnId"] === "copy")
130           {
131             this.rowObj["copy"] = this.rowArr[j]["searchresultField"]["displayValue"];          }
132
133           if(this.rowArr[j]["columnId"] === "edit")
134           {
135             this.rowObj["edit"] = this.rowArr[j]["searchresultField"]["displayValue"];
136           }
137
138           if(this.rowArr[j]["columnId"] === "delete")
139           {
140             this.rowObj["delete"] = this.rowArr[j]["searchresultField"]["displayValue"];
141           }
142
143           if(this.rowArr[j]["columnId"] === "schedule")
144           {
145             this.rowObj["schedule"] = this.rowArr[j]["searchresultField"]["displayValue"];
146           }
147
148           if(this.rowArr[j]["columnId"] === "run")
149           {
150             this.rowObj["run"] = this.rowArr[j]["searchresultField"]["displayValue"];
151           }
152
153           
154           j++;
155         }
156         this.finalRowArr.push(this.rowObj);
157         i++;
158       }
159
160       this.showSpinner = false;
161
162       if(!this.showSpinner)
163       {
164
165         
166        this.dataSource.data = this.finalRowArr;
167        this.dataSource1 = new MatTableDataSource(this.finalRowArr);
168        this.dataSource1.sort = this.sort;
169     this.dataSource1.paginator = this.paginator;
170        this.table.dataSource = this.dataSource;
171       }
172     });
173   }
174
175   ngOnInit() {
176       this.toggle = false;  
177   }
178
179   ngAfterViewInit() {
180     this.dataSource.sort = this.sort;
181     this.dataSource.paginator = this.paginator;
182     this.table.dataSource = this.dataSource;
183   }
184
185   displayReport(reportId : string)
186   {
187     this.reportId = reportId;
188
189     this._router.navigate(["v2/reports", "Edit",reportId]);  
190
191     
192     
193   }
194
195   runReport(reportId : string)
196   {
197     this.reportId = reportId;
198
199     this._router.navigate(['v2/run', reportId]);
200
201   }
202
203   applyFilter(filterValue: string) {
204     this.dataSource1.filter = filterValue.trim().toLowerCase();
205   }
206
207
208   confirmDelete(reportId : string)
209   {
210     this.showDialog = true;
211     this.closable = true;
212
213     this.newReportId = reportId;
214   }
215
216
217   deleteReport()
218   {
219     this._reportListService.deleteReport(this.newReportId)
220     .subscribe((responseDelete) => {
221       this.initializeReportList();
222       this.showDialog = !this.showDialog;
223       this.closable = false;
224         
225     });
226   }
227
228   close() {
229     this.showDialog = !this.showDialog;
230     this.closable = false;
231   }
232   
233   
234   openReportSchedule(reportId:string){
235       this._router.navigate(['v2/schedule_report', reportId]);
236     }
237   
238 }