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 } 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';
11 selector: 'app-all-reports',
12 templateUrl: './report-list.component.html',
13 styleUrls: ['./report-list.component.css']
15 export class ReportListComponent implements AfterViewInit, OnInit {
16 @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator;
17 @ViewChild(MatSort, {static: false} as any) sort: MatSort;
18 @ViewChild(MatTable, {static: false} as any) table: MatTable<AllReportsItem>;
20 @Input("reportId") reportId1 : string;
23 dataSource: AllReportsDataSource;
25 finalGETObjRowsArr : [][];
27 reportIdArr : string[];
29 intermediateDisplayedColumns : string[];
30 displayedColumns : string[];
31 finalRowArr : AllReportsItem[];
35 showSpinner : boolean;
36 /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
37 // displayedColumns = ['id', 'name'];
39 constructor(private _http : HttpClient, private _router : Router){
41 this.showSpinner = true;
42 this.dataSource = new AllReportsDataSource();
43 this.intermediateDisplayedColumns = new Array();
46 this.finalGETObj = new Object();
48 this.finalGETObj = new Object();
49 this.finalGETObjRowsArr = new Array();
50 this.rowArr = new Array();
51 this.reportIdArr = new Array();
55 this.finalRowArr = new Array();
58 this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0")
59 .subscribe((responseObj) => {
60 this.finalGETObj = responseObj;
61 // console.log(responseObj);
62 this.finalGETObjRowsArr = this.finalGETObj["rows"];
65 while(this.finalGETObj["columns"][0][j])
67 if(this.finalGETObj["columns"][0][j]["columnId"] !== "no")
69 this.intermediateDisplayedColumns.push(this.finalGETObj["columns"][0][j]["columnId"]);
73 //console.log(this.intermediateDisplayedColumns);
75 this.displayedColumns = this.intermediateDisplayedColumns;
79 while(this.finalGETObjRowsArr[0][i])
81 this.rowArr = this.finalGETObjRowsArr[0][i];
82 this.rowObj = new Object();
88 if(this.rowArr[j]["columnId"] === "rep_id")
90 this.rowObj["rep_id"] = this.rowArr[j]["searchresultField"]["displayValue"];
91 this.reportIdArr.push(this.rowArr[j]["searchresultField"]["displayValue"]);
94 if(this.rowArr[j]["columnId"] === "rep_name")
96 this.rowObj["rep_name"] = this.rowArr[j]["searchresultField"]["displayValue"];
99 if(this.rowArr[j]["columnId"] === "descr")
101 this.rowObj["descr"] = this.rowArr[j]["searchresultField"]["displayValue"];
104 if(this.rowArr[j]["columnId"] === "owner")
106 this.rowObj["owner"] = this.rowArr[j]["searchresultField"]["displayValue"];
109 if(this.rowArr[j]["columnId"] === "create_date")
111 this.rowObj["create_date"] = this.rowArr[j]["searchresultField"]["displayValue"];
114 if(this.rowArr[j]["columnId"] === "copy")
116 this.rowObj["copy"] = this.rowArr[j]["searchresultField"]["displayValue"]; }
118 if(this.rowArr[j]["columnId"] === "edit")
120 this.rowObj["edit"] = this.rowArr[j]["searchresultField"]["displayValue"];
123 if(this.rowArr[j]["columnId"] === "delete")
125 this.rowObj["delete"] = this.rowArr[j]["searchresultField"]["displayValue"];
128 if(this.rowArr[j]["columnId"] === "schedule")
130 this.rowObj["schedule"] = this.rowArr[j]["searchresultField"]["displayValue"];
133 if(this.rowArr[j]["columnId"] === "run")
135 this.rowObj["run"] = this.rowArr[j]["searchresultField"]["displayValue"];
141 this.finalRowArr.push(this.rowObj);
145 console.log(this.finalRowArr);
146 console.log(this.toggle);
147 this.showSpinner = false;
149 if(!this.showSpinner)
151 this.dataSource.data = this.finalRowArr;
153 this.dataSource.sort = this.sort;
154 this.dataSource.paginator = this.paginator;
155 this.table.dataSource = this.dataSource;
157 //[{rep_id: '1', rep_name: 'Hydrogen', descr: 'Hydrogen',owner: 'Hydrogen',create_date: 'Hydrogen',copy: 'Hydrogen',edit: 'Hydrogen',delete: 'Hydrogen',schedule: 'Hydrogen',run: 'Hydrogen' }];
162 console.log(this.showSpinner);
170 //console.log(this.toggle);
174 this.dataSource.sort = this.sort;
175 this.dataSource.paginator = this.paginator;
176 this.table.dataSource = this.dataSource;
177 console.log(this.toggle);
180 displayReport(reportId : string)
182 // this.toggle = true;
183 console.log(reportId, this.toggle);
184 this.reportId = reportId;
186 this._router.navigate(["v2/reports", "Edit",reportId]);
192 runReport(reportId : string)
194 // this.toggle1 = true;
196 this.reportId = reportId;
198 this._router.navigate(['v2/run', reportId]);