diff options
author | 2020-05-05 12:20:30 -0400 | |
---|---|---|
committer | 2020-05-16 01:50:52 +0530 | |
commit | 759e9e75fc0b5978f98f901744c87c0c8d5ef4fd (patch) | |
tree | 4b61ca0a05ec79d45f88b81142264e0407d2ddb3 /ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report | |
parent | 03abc05e6217274f557ec4987aa8e8bd34b2f4a4 (diff) |
Raptor backend java API Code(Analytics), UI Code(Overlay) and pages
component in os project
Issue-ID: PORTAL-902
Change-Id: Id297d9493a77e6816ed0f2a82c15b2eaa1e57a72
Signed-off-by: Sudarshan Kumar <sudarshan.kumar@att.com>
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report')
4 files changed, 318 insertions, 205 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.css index e9b4c87f..c57d7287 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.css +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.css @@ -1,4 +1,6 @@ - +.submit-approval-btn{ + display: contents; +} .lds-ring { display: inline-block; position: relative; @@ -9,11 +11,11 @@ box-sizing: border-box; display: block; position: absolute; - width: 80px; - height: 80px; + width: 35px; + height: 35px; margin: 6px; - margin-top: -10px; - border: 10px solid #006496; + margin-top: 40px; + border: 6px solid #006496; border-radius: 80%; animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite; border-color: #006496 transparent transparent transparent; @@ -46,13 +48,21 @@ table { overflow: auto; } + td.mat-cell{ + padding-left: 3px; + border-bottom-width: 1px; + border-bottom-style: solid; + border-right: 0.1px solid gray; + border-left: 0.1px solid gray; +} +.mat-icon-delete{ + color: #006496; + cursor: pointer; +} .app-data-table { - margin-top: 35px; - /* margin-left: 250px; - margin-right: 250px; */ - + margin-top: 0px; } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.html index b8fa314a..08ae8d42 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.html @@ -1,65 +1,73 @@ +<span class="ecomp-spinner" *ngIf="showSpinner"></span> -<div *ngIf="showSpinner"> - <div class="lds-ring"> - <div></div> - <div></div> - <div></div> - <div></div> - </div> -</div> +<div *ngIf="!showChart"> + <div class="app-data-table"> + <div class="app-data-table-fixed-height"> + <div class="example-container"> + <table [dataSource]="dataSource" mat-table matSort> + <div *ngFor="let keys of displayedColumns; let i = index"> + <ng-container matColumnDef="{{keys}}"> + <th *matHeaderCellDef mat-header-cell + mat-sort-header>{{displayedColumnsArr[i].split(",")[0]}}</th> + <td *matCellDef="let row" mat-cell> + <div *ngIf="row[keys].split('|')[0] == 'linkToReport'" + [ngStyle]="setStyle(row[keys].split('|')[4])"> + <a (click)="linkToReport(row[keys].split('|')[1], row[keys].split('|')[2])" + [routerLink]="">{{row[keys].split('|')[3]}}</a> + </div> + <div *ngIf="row[keys].split('|')[0] == 'linkToFeedback'" + [ngStyle]="setStyle(row[keys].split('|')[4])"> + <a (click)="linkToFeedback(row[keys].split('|')[1], row[keys].split('|')[2])" + [routerLink]="">{{row[keys].split('|')[3]}}</a> + </div> + <div *ngIf="row[keys].split('|')[0] == 'linkToMail'" + [ngStyle]="setStyle(row[keys].split('|')[3])"> + <a (click)="linkToMail(row[keys].split('|')[1])" + [routerLink]="">{{row[keys].split('|')[2]}}</a> + </div> + <div *ngIf="row[keys].split('|')[0] == 'clickToDownload' "> + <mat-icon class="mat-icon-delete" aria-hidden="false" aria-label="play-for-work" + (click)="onClickToDowload(row)">play-for-work</mat-icon> + </div> + <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToFeedback' && row[keys].split('|')[0] !== 'linkToMail' + && row[keys].split('|')[0] !== 'clickToDownload' " + [ngStyle]="setStyle(row[keys].split('|')[1])"> + {{row[keys].split('|')[0]}}</div> + </td> + <td *matFooterCellDef align="center" + mat-footer-cell>{{getDisplayTotal(keys)}}</td> + </ng-container> + </div> -<mat-form-field> - <input matInput (keyup)="applyFilter($event.target.value)" placeholder="Filter Report Data"> - </mat-form-field> + <tr *matHeaderRowDef="displayedColumns; sticky: true;" + mat-header-row></tr> + <tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr> + <tr mat-footer-row *matFooterRowDef="displayedColumns; sticky: true;"></tr> + </table> -<div class="app-data-table"> - <div class="app-data-table-fixed-height"> -<div class="example-container"> - <table mat-table [dataSource]="dataSource" matSort> - <div *ngFor="let keys of displayedColumns; let i = index"> - <ng-container matColumnDef="{{keys}}"> - <th mat-header-cell *matHeaderCellDef mat-sort-header>{{displayedColumnsArr[i].split(",")[0]}}</th> - <td mat-cell *matCellDef="let row"> - <div *ngIf="row[keys].split(',')[0] == 'linkToReport'"> - <a [routerLink]="" (click)="linkToReport(row[keys].split(',')[1], row[keys].split(',')[2])">{{row[keys].split(',')[3]}}</a> - </div> - <div *ngIf="row[keys].split(',')[0] == 'linkToFeedback'"> - <a [routerLink]="" (click)="linkToFeedback(row[keys].split(',')[1], row[keys].split(',')[2])">{{row[keys].split(',')[3]}}</a> - </div> - <div *ngIf="row[keys].split(',')[0] == 'linkToMail'"> - <a [routerLink]="" (click)="linkToMail(row[keys].split(',')[1])">{{row[keys].split(',')[2]}}</a> - </div> - <div *ngIf="row[keys].split(',')[0] !== 'linkToReport' && row[keys].split(',')[0] !== 'linkToFeedback' && row[keys].split(',')[0] !== 'linkToMail'"> - {{row[keys]}} - </div> - </td> - </ng-container> + <mat-paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator> </div> - - <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true;"></tr> - <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> - </table> - - <mat-paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator> - </div> - </div> + </div> + </div> +</div> +<div *ngIf="showChart" align="center"> + <iframe #iframe height="550px" style="border: none" width="100%"></iframe> </div> - <!-- <div *ngIf="!showDashboardReport"> <div class="app-data-table"> <div class="app-data-table-fixed-height"> <table mat-table class="full-width-table" matSort aria-label="Elements"> - + <div *ngFor="let keys of displayedColumns; let i = index"> <ng-container matColumnDef="{{keys}}"> <th mat-header-cell *matHeaderCellDef mat-sort-header >{{displayedColumnsArr[i].split(",")[0]}}</th> <td mat-cell *matCellDef="let row">{{row[keys]}}</td> </ng-container> </div> - - + + <tr mat-header-row *matHeaderRowDef="displayedColumns" ></tr> <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> </table> @@ -70,6 +78,5 @@ [pageSize]="15" [pageSizeOptions]="[15, 25, 50, 100, 250]"> </mat-paginator> - </div> + </div> </div> --> -
\ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.spec.ts index e0ea762d..a94d9ee1 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.spec.ts @@ -40,12 +40,10 @@ describe('RunDashboardReportComponent', () => { beforeEach(() => { fixture = TestBed.createComponent(RunDashboardReportComponent); component = fixture.componentInstance; - fixture.detectChanges(); }); it('should create', () => { expect(component).toBeTruthy(); - fixture.detectChanges(); }); it('should test ngOnInit method', () => { diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts index 35fe7414..3a38eba4 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/run-dashboard-report.component.ts @@ -1,10 +1,14 @@ -import { Component, OnInit, Input, AfterViewInit, ViewChild } from '@angular/core'; +import { Component, OnInit, Input, AfterViewInit, ViewChild, ElementRef } from '@angular/core'; import { GridsterConfig, GridType, GridsterItem } from 'angular-gridster2'; import { MatTableDataSource } from '@angular/material/table'; import { MatPaginator } from '@angular/material/paginator'; import { DashboardReportService } from './dashboard-report.service'; import { MatSort } from '@angular/material'; import { Router } from '@angular/router'; +import { environment } from '../../../../../../../../environments/environment'; +import { DisplayHtml } from '../../../display-html'; +import { RunService } from '../../run.service'; +import {FormControl} from '@angular/forms'; @@ -12,168 +16,262 @@ export interface PeriodicElement { } - - const ELEMENT_DATA: PeriodicElement[] = [{}]; @Component({ - selector: 'app-run-dashboard-report', - templateUrl: './run-dashboard-report.component.html', - styleUrls: ['./run-dashboard-report.component.css'] + selector: 'app-run-dashboard-report', + templateUrl: './run-dashboard-report.component.html', + styleUrls: ['./run-dashboard-report.component.css'] }) export class RunDashboardReportComponent implements AfterViewInit { - - - @Input("reportId") reportId1 : string; - @Input("queryString") queryString : string; - @Input("hitCnt") hitCnt : number; - dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA); - - @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator; - @ViewChild(MatSort, {static: false} as any) sort: MatSort; - - options: GridsterConfig; - dashboard : Array<GridsterItem> = new Array(); - - displayedColumns : string[]; - IncomingReportId : string; - displayedColumnsArr : string[]; - displayedRowObj : {}[]; - formFieldPresent : boolean; - showSpinner : boolean; - formFieldList : {}[]; - isReady : boolean; - responseFormFieldListLength : number; - NEWdisplayedColumns : string[]; - initCnt : number; - reportName : string; - showDashboardReport : boolean; - checkCnt : number; - initialQueryString : string; - initCounter : number; - runButtonHitCounter : number; - - constructor(private _dashboardReportService : DashboardReportService, private _router : Router) { - this.initCounter = 0; - this.runButtonHitCounter = 0; - } - - ngOnInit(){ - this.initialQueryString = this.queryString; - this.initCounter++; - this.runButtonHitCounter = this.hitCnt; - this.initialProcesses(); - } - - initialProcesses() - { - this.dataSource.paginator = this.paginator; - } - - ngOnChanges() - { - if(this.initialQueryString !== this.queryString && this.initCounter > 0 && this.runButtonHitCounter !== this.hitCnt) - { - this.initialQueryString = this.queryString; - this.runButtonHitCounter = this.hitCnt; - this.initialProcesses(); - this.afterViewInitProcesses(); + @Input('reportId') inputReportId: string; + @Input('queryString') queryString: string; + @Input('hitCnt') hitCnt: number; + @Input('reportType') reportType: string; + @Input('parentId') parentId: string; + dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA); + @ViewChild(MatPaginator, { static: false } as any) paginator: MatPaginator; + @ViewChild(MatSort, { static: false } as any) sort: MatSort; + @ViewChild('iframe') iframe: ElementRef; + options: GridsterConfig; + dashboard: Array<GridsterItem> = new Array(); + displayedColumns: string[]; + IncomingReportId: string; + displayedColumnsArr: string[]; + displayedRowObj: {}[]; + formFieldPresent: boolean; + showSpinner: boolean; + formFieldList: {}[]; + isReady: boolean; + responseFormFieldListLength: number; + NEWdisplayedColumns: string[]; + initCnt: number; + reportName: string; + showDashboardReport: boolean; + checkCnt: number; + initialQueryString: string; + initCounter: number; + runButtonHitCounter: number; + showChart = false; + displayColumValue: string; + displayTotal: any[]; + private chartRunUrl: string; + replaceDisplayValue: String; +saveResponseObj:any; + + constructor(private _dashboardReportService: DashboardReportService, private _router: Router, + private _runService: RunService) { + this.initCounter = 0; + this.runButtonHitCounter = 0; + } + + ngOnInit() { + this.initialQueryString = this.queryString; + this.initCounter++; + this.runButtonHitCounter = this.hitCnt; + if (this.reportType === 'Chart') { + this.showChart = true; + } + + this.initialProcesses(); } - else - { - this.runButtonHitCounter = this.hitCnt; - this.initialQueryString = this.queryString; + + initialProcesses() { + this.dataSource.paginator = this.paginator; } - - } - ngAfterViewInit() { - setTimeout(() => { - this.afterViewInitProcesses(); - }) -} + ngOnChanges() { + if (this.initialQueryString !== this.queryString && this.initCounter > 0 && this.runButtonHitCounter !== this.hitCnt) { + this.initialQueryString = this.queryString; + this.runButtonHitCounter = this.hitCnt; + this.initialProcesses(); + this.afterViewInitProcesses(); + } else { + this.runButtonHitCounter = this.hitCnt; + this.initialQueryString = this.queryString; + } + } + + ngAfterViewInit() { + this.afterViewInitProcesses(); + } + + afterViewInitProcesses() { + if (this.showChart) { + this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + + this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0'; + this.iframe.nativeElement.setAttribute('src', this.chartRunUrl); + this.showSpinner = false; + } else { + + this.displayedColumnsArr = new Array(); + this.displayedRowObj = new Array(); + this.displayedColumns = new Array(); + this.formFieldList = new Array(); + this.showSpinner = true; + this.isReady = false; + this.NEWdisplayedColumns = new Array(); + this.displayTotal = []; + if (localStorage.getItem(this.inputReportId)) { + this.postFetchingReportDataFn(JSON.parse(localStorage.getItem(this.inputReportId))); + localStorage.removeItem(this.inputReportId); + } else { + this._dashboardReportService.getReportDataWithFormFields(this.queryString, this.inputReportId) + .subscribe((response) => { + this.postFetchingReportDataFn(response); + }); + } + } + } - afterViewInitProcesses() - { - - this.displayedColumnsArr = new Array(); - this.displayedRowObj = new Array(); - this.displayedColumns = new Array(); - this.formFieldList = new Array(); - this.showSpinner = true; - this.isReady = false; - this.NEWdisplayedColumns = new Array(); - this._dashboardReportService.getReportDataWithFormFields(this.queryString, this.reportId1) - .subscribe((response) => { - this.formFieldPresent = false; - this.responseFormFieldListLength = 0; - - this.reportName = response["reportName"]; - - let i=0; - while(response["reportDataColumns"][i]) - { - this.displayedColumnsArr.push(response["reportDataColumns"][i]["columnTitle"] +","+ response["reportDataColumns"][i]["colId"]); - i++; + postFetchingReportDataFn(response: any){ + this.saveResponseObj = response; + this.formFieldPresent = false; + this.responseFormFieldListLength = 0; + this.reportName = response['reportName']; + let columnCntr = 0; + while (response['reportDataColumns'][columnCntr]) { + this.displayedColumnsArr.push(response['reportDataColumns'][columnCntr]['columnTitle'] + ',' + + response['reportDataColumns'][columnCntr]['colId']); + columnCntr++; + } + let totalCnt = 0; + while (response['reportTotalDataRows'][totalCnt]) { + this.displayTotal.push(response['reportTotalDataRows'][totalCnt]); + totalCnt++; + } + let rdr_cntr = 0; + while (response['reportDataRows'][rdr_cntr]) { + let dca_cntr = 0; + const obj = {}; + const reportDataRows = response['reportDataRows'][rdr_cntr]; + while (this.displayedColumnsArr[dca_cntr]) { + const rowColumnId = this.displayedColumnsArr[dca_cntr].split(',')[1]; + if (reportDataRows[rowColumnId]) { + let drillDownHtml = ''; + let displayValue = ''; + drillDownHtml = reportDataRows[rowColumnId]['drillDownURL']; + displayValue = reportDataRows[rowColumnId]['displayValue']; + if (drillDownHtml !== null && + drillDownHtml.length > 0 && + !displayValue.includes('linkToReport')) { + const value = this.convertToLinkToReport(drillDownHtml); + if (value.length > 0) { + this.replaceDisplayValue = value + ',' + + reportDataRows[rowColumnId]['displayValue']; + } else { + this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue']; + } + } else { + this.replaceDisplayValue = reportDataRows[rowColumnId]['displayValue']; + } + let displayObj: DisplayHtml = new class implements DisplayHtml { + 'background-color': string; + 'font-family': string; + 'font-size': string; + 'font-style': string; + 'font-weight': string; + 'text-align': string; + 'text-decoration': string; + color: string; + }; + if (reportDataRows[rowColumnId]['displayValueHtml'].includes('{')) { + displayObj = JSON.parse(reportDataRows[rowColumnId]['displayValueHtml']); + } + displayObj['text-align'] = reportDataRows[rowColumnId]['alignment']; + if (this.replaceDisplayValue.includes('linkToReport') || this.replaceDisplayValue.includes('linkToFeedback') || this.replaceDisplayValue.includes('linkToMail')) { + obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue.split(',').join('|') + + '|' + JSON.stringify(displayObj); + } else { + obj[reportDataRows[rowColumnId]['colId']] = this.replaceDisplayValue + + '|' + JSON.stringify(displayObj); + } + } + dca_cntr++; + } + this.displayedRowObj.push(obj); + rdr_cntr++; + } + for (let pushCounter = 0; pushCounter < this.displayedColumnsArr.length; pushCounter++) { + this.displayedColumns.push(this.displayedColumnsArr[pushCounter].split(',')[1]); + } + this.showSpinner = false; + this.dataSource = new MatTableDataSource<PeriodicElement>(this.displayedRowObj); + this.dataSource.sort = this.sort; + this.dataSource.paginator = this.paginator; } - let j=0; - while(response["reportDataRows"][j]) - { - let k=0; - let obj = new Object(); - while(this.displayedColumnsArr[k]) - { - if(response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]) - { - obj[response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["colId"]] = response["reportDataRows"][j][this.displayedColumnsArr[k].split(",")[1]]["displayValue"]; + linkToReport(reportID: string, queryParameters: string) { + localStorage.setItem(this.inputReportId, JSON.stringify(this.saveResponseObj)); + if (sessionStorage.length === 0) { + sessionStorage.setItem('1', this.parentId + '|' + this.queryString); + } else { + let length = sessionStorage.length; + length++; + sessionStorage.setItem(length.toString(), this.parentId + '|' + this.queryString); } - k++; - } - this.displayedRowObj.push(obj); - j++; + this._router.navigate(['v2/run', reportID, queryParameters]); } - for(let l=0; l<this.displayedColumnsArr.length; l++) - { - this.displayedColumns.push(this.displayedColumnsArr[l].split(",")[1]); + linkToFeedback(feedBackId: string, queryParameters: string) { + this._router.navigate(['v2/feedback', feedBackId]); + } + + linkToMail(mailId: string) { + const email = 'mailto:' + mailId; + window.location.href = email; + } + + applyFilter(filterValue: string) { + this.dataSource.filter = filterValue.trim().toLowerCase(); + } + + setStyle(styles: string) { + if (styles.includes('{')) { + return JSON.parse(styles); + } else { + return {}; + } + } + + getDisplayTotal(keys: any) { + if (this.displayTotal.length > 0) { + return this.displayTotal[0][keys].displayValue; + } else { + return ''; + } + } + + convertToLinkToReport(value: string) { + value = value.replace(/;/g, ''); + let outPut = ''; + while (value.includes('c_master=')) { + const index = value.indexOf('c_master='); + if (index > 0) { + value = value.substring(index, value.length); + } else if (index === 0) { + value = value.replace('c_master=', ''); + } + } + const split = value.split('&'); + // const spltFirst = split[0].split('='); + if (split[1].length <= 0) { + return outPut; + } + outPut = 'linkToReport,' + split[0] + ','; + let splitCounter = 1; + for (splitCounter = 1; splitCounter < split.length; splitCounter++) { + if (!split[splitCounter].includes('LOGIN_ID=') && + !split[splitCounter].includes('display_content=') && + !split[splitCounter].includes('drilldown_index=') && + !split[splitCounter].includes('show_back_btn=') && + !split[splitCounter].includes('r_action')) { + outPut = outPut + '&' + split[splitCounter]; + } + } + return outPut; } - this.showSpinner = false; - - this.dataSource = new MatTableDataSource<PeriodicElement>(this.displayedRowObj); - this.dataSource.sort = this.sort; - this.dataSource.paginator = this.paginator; - - - }); - - - } - - - - linkToReport(reportID : string, queryParameters : string) - { - this._router.navigate(['v2/run', reportID, queryParameters]); - } - - linkToFeedback(feedBackId : string, queryParameters : string) - { - this._router.navigate(['v2/feedback', feedBackId]); - } - - linkToMail(mailId : string) - { - var email = "mailto:" + mailId; - window.location.href = email; - } - - applyFilter(filterValue: string) { - this.dataSource.filter = filterValue.trim().toLowerCase(); - } - - } |