summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/report-run/run/run-report/run-report.component.html
blob: 6b3836e93782368bbd5ddd6237c55311542a376f (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
<span *ngIf="showSpinner" class="ecomp-spinner"></span>

<span *ngIf="showUploadSpinner" class="ecomp-spinner"></span>

<div *ngIf="showDashboardReport">
    <span *ngIf="download_in_progress" class="ecomp-small-spinner"></span>
    Download:
    <a *ngIf = "isDashboardExcelReadyToDownload" [routerLink]=""><img class="downloadImg"  (click)="downloadReport('application/vnd.ms-excel', 'xls')"
                            placement="top" ngbTooltip="Download Dashboard Report"
                            src="assets/images/xlsx.png"></a>&nbsp;

    <gridster class="gridster-color"[options]="options">
        <gridster-item *ngFor="let item of dashboard" [item]="item">
            <div *ngIf="item.hasContent" class="gridster-item-content">
                <div>
                    <a (click)="takeToReport(queryString, item.hasContent.id.split('#')[1])"
                       [routerLink]="">{{item.hasContent.name}}</a>
                       <div style="height: 6px;"></div>
                    <app-run-dashboard-report [hitCnt]="hitCnt" [queryString]="queryString"
                                              [reportId]="item.hasContent.id.split('#')[1]"
                                              [reportType]="item.hasContent.id.split('#')[0]"
                                              [parentId]="inputReportId">
                    </app-run-dashboard-report>
                </div>
            </div>
        </gridster-item>
    </gridster>
    <div *ngIf="error == true">
        <h1>Error Message:</h1>
        <p>{{errorMessage}}</p>
        <br/>
        <h1>Stack Trace:</h1>
        <p>{{stackTrace}}</p>
    </div>
</div>
<span *ngIf="download_in_progress" class="ecomp-small-spinner"></span>
<div *ngIf="!showDashboardReport">
    <div *ngIf="error == false" [hidden]="isChartAvailable == false" align="center">
        <iframe #iframe height="500" style="border: none" width="70%"></iframe>
    </div>

    <div>
        <div class="field-group">

            <div class="filter-div" >
            <mat-form-field><input (keyup)="applyFilter($event.target.value)" matInput placeholder="Filter Report Data">
            </mat-form-field>
           </div>
            <div class="download-div" >
                <span class="download-title"> Download:</span>
            <a [routerLink]=""><img class="downloadImg" (click)="downloadSinglePage('application/vnd.ms-excel', 'xls')" placement="top" ngbTooltip="Download Current Page"
                                    src="assets/images/xlsx.png"></a>&nbsp;
            <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.ms-excel', 'xls')"  placement="top" ngbTooltip="Download Upto 65,000"
                                    src="assets/images/xlsx.png"></a>&nbsp;
                <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/octet-stream', 'zip')"  placement="top" ngbTooltip="Download CSV Upto 750,000"
                                        src="assets/images/csv.png" ></a>&nbsp;
            <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/pdf', 'pdf')"  placement="top" ngbTooltip="Download PDF"
                                    src="assets/images/pdf.png" ></a>&nbsp;
                <button *ngIf="showBackButton"  (click)="goBack()" class="btn btn-alt btn-back" >Back</button>
            </div>
            <div class="pagination-div">
            <mat-paginator (page)="pageEvent = $event; onPaginationChange($event)" [length]="totalRecords"
                           [pageSize]="pageSize" showFirstLastButtons></mat-paginator>
             </div>
        </div>
        <div class="app-data-table-fixed-height" id="reportTableSize">
            <table [dataSource]="dataSource" mat-table matSort>
                <ng-container *ngFor="let keys of displayedColumns; let i = index">
                    <ng-container matColumnDef="{{keys}}">
                        <th *matHeaderCellDef align="center" mat-header-cell mat-sort-header>
                            {{displayedColumnsArr[i].split(",")[0]}}</th>
                        <td *matCellDef="let row" mat-cell [ngStyle]="setStyle(row[keys])">
                            <div *ngIf="row[keys].split('|')[0] == 'linkToReport'">
                                <a (click)="linkToReport(row[keys].split('|')[1], row[keys].split('|')[2])"
                                   [routerLink]="">{{row[keys].split('|')[3]}}</a>
                            </div>
                            <div *ngIf="row[keys].split('|')[0] == 'linkToMail'"
                                 >
                                <a (click)="linkToMail(row[keys].split('|')[1])"
                                   [routerLink]="">{{row[keys].split('|')[2]}}</a>
                            </div>
                            <div *ngIf="row[keys].split('|')[0] !== 'linkToReport' && row[keys].split('|')[0] !== 'linkToMail'">
                                {{row[keys].split('|')[0]}}&nbsp;</div>
                        </td>
                        <td *matFooterCellDef align="center" mat-footer-cell>{{getDisplayTotal(keys)}}</td>
                    </ng-container>
                </ng-container>

                <tr *matHeaderRowDef="displayedColumns; sticky: true;" mat-header-row></tr>
                <tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr>
                <tr *matFooterRowDef="displayedColumns; sticky: true;" mat-footer-row></tr>
            </table>
        </div>
    </div>
</div>
<h6>Execution Time: {{timeTaken}} Seconds</h6>


<style scoped>
    :host ::ng-deep .mat-paginator-outer-container .mat-paginator-container{
        min-height: 30px;
        height: 30px;
    }

    :host ::ng-deep  .mat-form-field-appearance-legacy .mat-form-field-label {
    font-size: 14px;
  }

  :host ::ng-deep  .mat-paginator, .mat-paginator-page-size .mat-select-trigger {
        font-size: 14px;
  }

  :host ::ng-deep .mat-sort-header-arrow.ng-trigger.ng-trigger-arrowPosition {
    color: black;
    opacity: 0;
}

:host ::ng-deep .mat-sort-header-pointer-left.ng-trigger.ng-trigger-leftPointer {
   transform: rotate(-45deg);
   color: black;
}
:host ::ng-deep .mat-sort-header-pointer-right.ng-trigger.ng-trigger-rightPointer {
   transform: rotate(45deg);
   color: black;
}

</style>