1 import { AfterViewInit, Component, OnInit, ViewChild, SimpleChange, Input, Output } 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 { DataTableDataSource, DataTableItem } from './column-list-datasource';
6 import { HttpClient } from '@angular/common/http';
7 import { environment } from '../../../../../../../environments/environment';
8 import { ColumnService } from '../column.service';
11 selector: 'app-column-list',
12 templateUrl: './column-list.component.html',
13 styleUrls: ['./column-list.component.css']
15 export class ColumnListComponent implements 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<DataTableItem>;
20 @Input("reportId") reportId : number;
24 dataSource: DataTableDataSource;
26 finalEditRowGetObj : {};
27 finalObjArr: DataTableItem[];
38 dependsOnFormFields : string;
41 customTextForSubTotal : string;
42 hideRepeatedValues : boolean;
43 multiGroupColumnLevel;
46 displayWidthInPixel : string;
48 displayAlignment : string;
49 displayHeaderAlignment : string;
51 drilldownURL : string;
52 displayTotal : string;
54 URLListObjArray : {}[];
56 TotalColListObjArray : {}[];
59 showConfirmButton: boolean;
61 /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */
62 displayedColumns = ['no', 'id', 'name', 'edit'];
65 showSaveColDialog: boolean;
67 EditColmessage: string;
68 EditColstatus: string;
70 showEditDrillDownPage : boolean;
71 drillDownReportId : string;
72 drilldownParams : string;
73 drilldownType : string;
76 showSpinner : boolean;
77 displayTable : boolean;
79 constructor(private _http : HttpClient, private _columnService : ColumnService){
81 this.showEditDrillDownPage = false;
82 this.showConfirmButton = false;
84 this.dataSource = new DataTableDataSource();
86 this.finalGetObj = new Object();
87 this.finalObjArr = new Array();
88 this.finalEditRowGetObj = new Object();
89 this.URLListObjArray = new Array();
90 this.TotalColListObjArray = new Array();
91 this.finalPOSTObj = new Object();
92 this.drillDownObj = new Object();
94 this.showSpinner = false;
100 this.displayTable = true;
102 this._columnService.getColumnList()
103 .subscribe((response) => {
104 this.showSpinner = true;
105 this.finalGetObj = response;
108 while(this.finalGetObj[k])
110 this.finalGetObj[k]["no"] = k+1;
111 this.finalGetObj[k]["edit"] = "";
113 this.finalObjArr.push(this.finalGetObj[k]);
121 this.dataSource.data = this.finalObjArr;
123 this.dataSource.sort = this.sort;
124 this.dataSource.paginator = this.paginator;
125 this.table.dataSource = this.dataSource;
126 this.dataSource.data = this.finalObjArr;
127 //this.dataSource.data = [{id:"1", no:1, name:"1", edit:""}];
128 this.showSpinner = false;
130 this.showDialog = false;
131 this.showSaveColDialog =false;
139 this.drillDownReportId = this.drilldownURL;
140 this.drillDownObj["drillDownUrl"] = this.drilldownURL;
141 this.drillDownObj["drillDownParams"] = this.drilldownParams;
142 this.drillDownObj["drillDownType"] = this.drilldownType;
146 editRecord(id : string)
148 this.showSpinner = true;
151 this._columnService.getIndividualColumnData(id)
152 .subscribe((response) => {
153 this.finalEditRowGetObj = response;
155 this.id = this.finalEditRowGetObj["colId"];
156 this.name = this.finalEditRowGetObj["colName"];
158 this.noWrap = (this.finalEditRowGetObj["noWrap"] === "Y" ? true : false);
159 this.visible = this.finalEditRowGetObj["visible"];
161 this.dependsOnFormFields = this.finalEditRowGetObj["depeondsOnForField"];
162 this.dataType = this.finalEditRowGetObj["dataType"];
163 this.groupByPos = (this.finalEditRowGetObj["groupByPos"] == null ? 0 : this.finalEditRowGetObj["groupByPos"] );
164 this.customTextForSubTotal = this.finalEditRowGetObj["subTotalCustomText"];
165 this.hideRepeatedValues = this.finalEditRowGetObj["hideRepeatedKey"];
166 this.multiGroupColumnLevel = (this.finalEditRowGetObj["level"] == null ? 0 : this.finalEditRowGetObj["level"]);
167 this.colspan = (this.finalEditRowGetObj["colspan"] == null ? 0 : this.finalEditRowGetObj["colspan"]);
168 this.displayName = this.finalEditRowGetObj["displayName"];
169 this.displayWidthInPixel = (this.finalEditRowGetObj["displayWidthInPixel"] == null ? 0 : this.finalEditRowGetObj["displayWidthInPixel"] );
170 this.indentation = (this.finalEditRowGetObj["indentation"] == null ? 0 : this.finalEditRowGetObj["indentation"]);
171 this.displayAlignment = this.finalEditRowGetObj["displayAlignment"];
172 this.displayHeaderAlignment = (this.finalEditRowGetObj["displayHeaderAlignment"] == null ? "" : this.finalEditRowGetObj["displayHeaderAlignment"]);
173 this.sortable = this.finalEditRowGetObj["sortable"];
174 this.drilldownURL = this.finalEditRowGetObj["drilldownURL"];
175 this.drilldownParams = this.finalEditRowGetObj["drilldownParams"];
176 this.drilldownType = this.finalEditRowGetObj["drilldownType"];
177 this.drillDownObj["drillDownUrl"] = this.drilldownURL;
178 this.drillDownObj["drillDownParams"] = this.drilldownParams;
179 this.drillDownObj["drillDownType"] = this.drilldownType;
183 this. displayTotal = (this.finalEditRowGetObj["displayTotal"] == null ? "" : this.finalEditRowGetObj["displayTotal"]);
186 this._columnService.getDrillDownReportList()
187 .subscribe((responseURLList) => {
189 this.URLListObj = responseURLList;
192 while(this.URLListObj[l])
194 this.URLListObjArray.push(this.URLListObj[l]);
200 this._columnService.getResponseTotalColsList()
201 .subscribe((responseTotalColList) => {
203 this.TotalColListObj = responseTotalColList;
206 while(this.TotalColListObj[l])
208 this.TotalColListObjArray.push(this.TotalColListObj[l]);
213 this.status = "Success!";
214 this.message = "Report Column - Edit";
215 this.showDialog = !this.showDialog;
216 this.closable = true;
220 this.showSpinner = false;
237 this._columnService.getColumnList()
238 .subscribe((response) => {
239 this.showSpinner = true;
240 this.dataSource = new DataTableDataSource();
241 this.finalObjArr = [];
243 this.finalGetObj = response;
246 while(this.finalGetObj[k])
248 this.finalGetObj[k]["no"] = k+1;
249 this.finalGetObj[k]["edit"] = "";
251 this.finalObjArr.push(this.finalGetObj[k]);
259 this.dataSource.data = this.finalObjArr;
261 this.dataSource.sort = this.sort;
262 this.dataSource.paginator = this.paginator;
263 this.table.dataSource = this.dataSource;
264 this.dataSource.data = this.finalObjArr;
265 //this.dataSource.data = [{id:"1", no:1, name:"1", edit:""}];
267 this.showSpinner = false;
269 this.showDialog = false;
270 this.showSaveColDialog =false;
272 // this.showDialog = !this.showDialog;
273 this.closable = false;
275 // this.showSaveColDialog =false;
276 this.showEditDrillDownPage = false;
277 this.Colclosable = false;
278 this.showConfirmButton = false;
283 this.showEditDrillDownPage = !this.showEditDrillDownPage;
284 this.showConfirmButton = false;
287 onCompleted(drilldownParamsArr : any)
289 this.drilldownParams = drilldownParamsArr["drilldownParams"];
296 this.showSpinner = true;
298 this.finalPOSTObj["tabId"] = "ColEdit";
299 this.finalPOSTObj["tabName"] = "Column Edit";
301 this.finalPOSTObj["colId"] = this.id;
302 this.finalPOSTObj["colName"] = this.name;
304 this.finalPOSTObj["colType"] = "";
305 this.finalPOSTObj["colspan"] = this.colspan;
306 this.finalPOSTObj["dataType"] = this.dataType;
307 this.finalPOSTObj["depeondsOnForField"] = this.dependsOnFormFields;
308 this.finalPOSTObj["displayAlignment"] = this.displayAlignment;
309 this.finalPOSTObj["displayHeaderAlignment"] = this.displayHeaderAlignment;
310 this.finalPOSTObj["displayName"] = this.displayName;
311 this.finalPOSTObj["displayTotal"] = this.displayTotal;
312 this.finalPOSTObj["displayWidth"] = 10;
313 this.finalPOSTObj["displayWidthInPixel"] = this.displayWidthInPixel;
314 this.finalPOSTObj["drilldownParams"] = this.drilldownParams;
315 this.finalPOSTObj["drilldownType"] = "";
316 this.finalPOSTObj["drilldownURL"] = this.drilldownURL;
317 this.finalPOSTObj["errorMessage"] = "";
318 this.finalPOSTObj["errorStackTrace"] = "";
319 this.finalPOSTObj["groupByPos"] = this.groupByPos;
320 this.finalPOSTObj["hideRepeatedKey"] = this.hideRepeatedValues;
321 this.finalPOSTObj["indentation"] = this.indentation;
322 this.finalPOSTObj["level"] = this.multiGroupColumnLevel;
323 this.finalPOSTObj["noWrap"] = (this.noWrap === true? "Y" : "N");
324 this.finalPOSTObj["sortable"] = this.sortable;
325 this.finalPOSTObj["subTotalCustomText"] = this.displayTotal;
326 this.finalPOSTObj["visible"] = this.visible;
328 this._columnService.postColumnChanges(this.finalPOSTObj)
329 .subscribe((finalPOSTResponse) => {
331 if(finalPOSTResponse)
333 this.EditColstatus = "Success!";
334 this.EditColmessage = "Your change has been saved! Row definition is updated.";
335 this.showSaveColDialog = !this.showSaveColDialog;
337 this.Colclosable = true;
342 this.EditColstatus = "Failure!";
343 this.EditColmessage = "Row definition could not be updated.";
344 this.showSaveColDialog = !this.showSaveColDialog;
346 this.Colclosable = true;
349 this.showEditDrillDownPage = false;
350 this.showSpinner = false;
358 this.showEditDrillDownPage = !this.showEditDrillDownPage;
359 this.showConfirmButton = true;