diff options
Diffstat (limited to 'ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics')
53 files changed, 1387 insertions, 9982 deletions
diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html index bc6bf83e..4440b9e5 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.html @@ -442,7 +442,8 @@ <br/> <div class="field-group"> - <button (click)="saveChartData()" class="btn btn-alt btn-small" style="font-size: 17px;">Save</button> + <button (click)="saveChartData('save')" class="btn btn-alt btn-small" style="font-size: 17px;">Save</button> + <button (click)="saveChartData('reset')" class="btn btn-alt btn-small" style="font-size: 17px;">Reset</button> </div> </div> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts index 18f5ab1b..2d9a52c0 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.component.ts @@ -109,7 +109,7 @@ export class ChartWizardComponent implements OnInit { } } - saveChartData() { + saveChartData(value: String) { this.showSpinner = true; this.chartJson.chartTypeJSON = { index: 0, @@ -133,7 +133,7 @@ export class ChartWizardComponent implements OnInit { this.chartJson.rangeAxisList.push(removeList); } - this.chartService.saveChartData(this.chartJson).subscribe( + this.chartService.saveChartData(this.chartJson, value).subscribe( (response) => { this.ngOnInit(); }); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts index e6a7bf56..bd5e500c 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/chart-wizard/chart-wizard.service.ts @@ -15,8 +15,8 @@ export class ChartWizard { { headers: new HttpHeaders({'Content-Type': 'application/json'})}); } - saveChartData(chartJson: any) { - return this._http.post(environment.baseUrl + 'save_chart', chartJson, + saveChartData(chartJson: any, action: any) { + return this._http.post(environment.baseUrl + 'save_chart?action=' + action, chartJson, { headers: new HttpHeaders({'Content-Type': 'application/json'})}); } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html index 0d4f3c80..4a8f2695 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.html @@ -3,251 +3,311 @@ <div class="card"> <div class="card-body" style="height: 200px;"> <div class="modalTitle">{{EditColstatus}}</div> - <button *ngIf="SQLclosable" (click)="close()" aria-label="Close" class="dialog__close-btn">X</button> + <button (click)="close()" *ngIf="SQLclosable" aria-label="Close" class="dialog__close-btn">X</button> <br/> <label>{{EditColmessage}}</label> </div> - <div class="card-footer"style="width: 500px;"> + <div class="card-footer" style="width: 500px;"> <button (click)="close()" class="btn btn-alt btn-small">Close</button> </div> </div> </app-save-sql-changes-dialog-component> - - <app-columns-edit-component [(visible)]="showDialog"> <div class="card"> - <div class="card-header"> - <div class="modalTitle">{{message}}</div> - <button *ngIf="closable" (click)="close()" aria-label="Close" class="dialog__close-btn">X</button> - <br/> - </div> + <div class="card-header"> + <div class="modalTitle">{{message}}</div> + <button (click)="close()" *ngIf="closable" aria-label="Close" class="dialog__close-btn">X</button> + <br/> + </div> <div class="card-body" style="width: 1000px; height: 532px; "> <div style="height:500px; overflow: scroll; overflow-x: hidden;"> <div class="tab-pane"> - <app-edit-drill-down-link *ngIf="showEditDrillDownPage" [reportId]="reportId" [drillDownObj]="drillDownObj" (completed)="onCompleted($event)" > + <app-edit-drill-down-link (completed)="onCompleted($event)" *ngIf="showEditDrillDownPage" + [drillDownObj]="drillDownObj" [reportId]="reportId"> - </app-edit-drill-down-link> - <app-column-advanced-display *ngIf="showAdvancedDisplayPage" - [semaphoreArr]="semaphoreList" - [inputSemaphoreName]="semaphoreName" + </app-edit-drill-down-link> + <app-column-advanced-display (completed)="finishAdvancedDisplay($event)" + *ngIf="showAdvancedDisplayPage" [addNew]="addDisplay" - (completed)="finishAdvancedDisplay($event)" [columnName]="finalEditRowGetObj.colId"> + [columnList]="columnList" + [columnName]="finalEditRowGetObj.colId" + [inputSemaphoreName]="semaphoreName" + [semaphoreArr]="semaphoreList"> </app-column-advanced-display> - <div *ngIf="!showEditDrillDownPage && !showAdvancedDisplayPage"> - <div class="field-group"> - <label class="defaultFontSize1">Column ID:</label><label class="boxMargin defaultFontSize">{{finalEditRowGetObj.colId}}</label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Column Name:</label><label class="boxMargin defaultFontSize">{{finalEditRowGetObj.colName}}</label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Depends on formfield:</label><label><input class=" defaultFontSize" id="depeondsOnForField" type="text" [(ngModel)]="dependsOnFormFields" value="{{finalEditRowGetObj.depeondsOnForField}}"/></label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1" for="dataType">Data Type:</label> - <select class="browser-default custom-select" required="required" placeholder="Select Report Type" [(ngModel)]="dataType" value="{{finalEditRowGetObj.dataType}}"> - <option class="defaultFontSize1" selected>Select Data Type </option> - <option class="defaultFontSize1" value="Number" >Number</option> - <option class="defaultFontSize1" value="Date" >Date</option> - <option class="defaultFontSize1" value="Character" >Character</option> - <option class="defaultFontSize1" value="Hyperlink" >Hyperlink</option> - </select> - </div> - <br/> - <div> - <label class="defaultFontSize1">Group By Pos:</label><label><input class="defaultFontSize" id="groupByPos" type="text" [(ngModel)]="groupByPos" value="{{finalEditRowGetObj.groupByPos}}"/></label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Custom Text for Sub-Total:</label><label><input class="defaultFontSize" id="subTotalCustomText" type="text" [(ngModel)]="customTextForSubTotal" value="{{finalEditRowGetObj.subTotalCustomText}}"/></label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Hide Repeated Values:</label> - <label class="defaultFontSize1" for="hideFormFieldsAfterRun" class="checkbox"> - <input id="hideFormFieldsAfterRun" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="hideRepeatedValues" value="{{finalEditRowGetObj.hideRepeatedKey}}"><i class="skin"></i><span></span> + <div *ngIf="!showEditDrillDownPage && !showAdvancedDisplayPage"> + <div class="field-group"> + <label class="defaultFontSize1">Column ID:</label><label + class="boxMargin defaultFontSize">{{finalEditRowGetObj.colId}}</label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Column Name:</label><label + class="boxMargin defaultFontSize">{{finalEditRowGetObj.colName}}</label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Depends on formfield:</label><label><input + [(ngModel)]="dependsOnFormFields" class=" defaultFontSize" id="depeondsOnForField" + type="text" + value="{{finalEditRowGetObj.depeondsOnForField}}"/></label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1" for="dataType">Data Type:</label> + <select [(ngModel)]="dataType" class="browser-default custom-select" + placeholder="Select Report Type" required="required" + value="{{finalEditRowGetObj.dataType}}"> + <option class="defaultFontSize1" selected>Select Data Type</option> + <option class="defaultFontSize1" value="Number">Number</option> + <option class="defaultFontSize1" value="Date">Date</option> + <option class="defaultFontSize1" value="Character">Character</option> + <option class="defaultFontSize1" value="Hyperlink">Hyperlink</option> + </select> + </div> + <br/> + <div> + <label class="defaultFontSize1">Group By Pos:</label><label><input [(ngModel)]="groupByPos" + class="defaultFontSize" + id="groupByPos" + type="text" + value="{{finalEditRowGetObj.groupByPos}}"/></label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Custom Text for Sub-Total:</label><label><input + [(ngModel)]="customTextForSubTotal" class="defaultFontSize" id="subTotalCustomText" + type="text" + value="{{finalEditRowGetObj.subTotalCustomText}}"/></label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Hide Repeated Values:</label> + <label class="defaultFontSize1" class="checkbox" for="hideFormFieldsAfterRun"> + <input [(ngModel)]="hideRepeatedValues" class="ng-valid ng-dirty ng-valid-parse ng-touched" + id="hideFormFieldsAfterRun" + type="checkbox" + value="{{finalEditRowGetObj.hideRepeatedKey}}"><i class="skin"></i><span></span> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Multi Group Column Level:</label> + <label><select [(ngModel)]="multiGroupColumnLevel" class="browser-default custom-select defaultFontSize" + placeholder="Select Report Type" required="required" + value="{{finalEditRowGetObj.multiGroupColumnLevel}}"> + <option class="defaultFontSize1" selected>Select Level</option> + <option class="defaultFontSize1" value="1">1</option> + <option class="defaultFontSize1" value="2">2</option> + <option class="defaultFontSize1" value="3">3</option> + <option class="defaultFontSize1" value="4">4</option> + </select> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Multi group Column Range : Colspan:</label><label><input + [(ngModel)]="colspan" class="defaultFontSize" id="colspan" type="text" + value="{{finalEditRowGetObj.colspan}}"/></label> + </div> + <br/> + <br/> + <div> + <label class="displayName">Display Name:</label><label><input [(ngModel)]="displayName" + class="defaultFontSize" id="displayName" + type="text" + value="{{finalEditRowGetObj.displayName}}"/></label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Display Width (In Pxls):</label><label><input + [(ngModel)]="displayWidthInPixel" class="defaultFontSize" id="displayWidthInPixel" + type="text" + value="{{finalEditRowGetObj.displayWidthInPixel}}"/></label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">No Wrap ?:</label> + <label class="defaultFontSize" class="checkbox" for="noWrap"> + <input [(ngModel)]="noWrap" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="noWrap" + type="checkbox" value="{{finalEditRowGetObj.noWrap}}"><i + class="skin"></i><span></span> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Indent Parameter to display value:</label> + <label><select [(ngModel)]="indentation" class="browser-default custom-select defaultFontSize" + placeholder="Select Indent" required="required" + value="{{finalEditRowGetObj.indentation}}"> + <option class="defaultFontSize" selected>Select Indent</option> + <option class="defaultFontSize" value="1">1</option> + <option class="defaultFontSize" value="2">2</option> + <option class="defaultFontSize" value="3">3</option> + </select> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Display Alignment:</label> + <label><select [(ngModel)]="displayAlignment" class="browser-default custom-select defaultFontSize" + placeholder="Select Report Type" required="required" + value="{{finalEditRowGetObj.displayAlignment}}"> + <option class="defaultFontSize" selected>Select Alignment</option> + <option value="Left">Left</option> + <option class="defaultFontSize" value="Center">Center</option> + <option class="defaultFontSize" value="Right">Right</option> + </select> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Display Header Alignment:</label> + <label><select [(ngModel)]="displayHeaderAlignment" class="browser-default custom-select defaultFontSize" + placeholder="Select Report Type" required="required" + value="{{finalEditRowGetObj.displayHeaderAlignment}}"> + <option selected>Select Header Alignment</option> + <option value="Left">Left</option> + <option value="Center">Center</option> + <option value="Right">Right</option> + </select> </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Multi Group Column Level:</label> - <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="multiGroupColumnLevel" value="{{finalEditRowGetObj.multiGroupColumnLevel}}"> - <option class="defaultFontSize1" selected>Select Level </option> - <option class="defaultFontSize1" value="1" >1</option> - <option class="defaultFontSize1" value="2" >2</option> - <option class="defaultFontSize1" value="3" >3</option> - <option class="defaultFontSize1" value="4" >4</option> - </select> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Multi group Column Range : Colspan:</label><label><input class="defaultFontSize" id="colspan" type="text" [(ngModel)]="colspan" value="{{finalEditRowGetObj.colspan}}"/></label> - </div> - <br/> - <br/> - <div> - <label class="displayName">Display Name:</label><label><input class="defaultFontSize" id="displayName" type="text" [(ngModel)]="displayName" value="{{finalEditRowGetObj.displayName}}"/></label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Display Width (In Pxls):</label><label><input class="defaultFontSize" id="displayWidthInPixel" type="text" [(ngModel)]="displayWidthInPixel" value="{{finalEditRowGetObj.displayWidthInPixel}}"/></label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">No Wrap ?:</label> - <label class="defaultFontSize" for="noWrap" class="checkbox"> - <input id="noWrap" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="noWrap" value="{{finalEditRowGetObj.noWrap}}"><i class="skin"></i><span></span> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Indent Parameter to display value:</label> - <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Indent" [(ngModel)]="indentation" value="{{finalEditRowGetObj.indentation}}"> - <option class="defaultFontSize" selected>Select Indent </option> - <option class="defaultFontSize" value="1" >1</option> - <option class="defaultFontSize" value="2" >2</option> - <option class="defaultFontSize" value="3" >3</option> - </select> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Display Alignment:</label> - <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="displayAlignment" value="{{finalEditRowGetObj.displayAlignment}}"> - <option class="defaultFontSize" selected>Select Alignment </option><option value="Left" >Left</option> - <option class="defaultFontSize" value="Center" >Center</option> - <option class="defaultFontSize" value="Right" >Right</option> - </select> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Display Header Alignment:</label> - <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="displayHeaderAlignment" value="{{finalEditRowGetObj.displayHeaderAlignment}}"> - <option selected>Select Header Alignment </option> - <option value="Left" >Left</option> - <option value="Center" >Center</option> - <option value="Right" >Right</option> - </select> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Sortable:</label> - <label class="defaultFontSize" for="sortable" class="checkbox"> - <input id="sortable" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="sortable" value="{{finalEditRowGetObj.sortable}}"><i class="skin"></i><span></span> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Visible:</label> - <label class="defaultFontSize" for="visible" class="checkbox"> - <input id="visible" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="visible" value="true"><i class="skin"></i><span></span> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Drill-down Link: <mat-icon aria-hidden="false" aria-label="edit" (click)="drillDownLinkPage()">edit</mat-icon> </label> - <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="drilldownURL" value="{{finalEditRowGetObj.drilldownURL}}"> - <option class="defaultFontSize" value="" selected>Select Drill Down Link </option> - <option class="defaultFontSize" *ngFor="let URLObj of URLListObjArray" value="{{URLObj.id}}" >{{URLObj.id}}|{{URLObj.name}}</option> - </select> - </label> - </div> - <div> - <label class="defaultFontSize1">Advanced Display - <mat-icon *ngIf="semaphoreName !== 'No Display'" aria-hidden="false" aria-label="edit" (click)="editDisplay()">edit</mat-icon> - <mat-icon aria-hidden="false" aria-label="add" (click)="addNewDisplay()">add</mat-icon> - </label> - <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="semaphoreName" value="{{semaphoreName}}"> - <option class="defaultFontSize" selected>No Display </option> - <option class="defaultFontSize" *ngFor="let sem of semaphoreList.semaphore" value="{{sem.semaphoreName}}" >{{sem.semaphoreName}}</option> - </select> - </label> - </div> - <br/> - <br/> - <div> - <label class="defaultFontSize1">Total for the column:</label> - <label><select class="browser-default custom-select defaultFontSize" required="required" placeholder="Select Report Type" [(ngModel)]="displayTotal" value="{{finalEditRowGetObj.displayTotal}}"> - <option selected value="">Select Total </option> - <option *ngFor="let TotalListObj of TotalColListObjArray" value="{{TotalListObj.id}}" >{{TotalListObj.name}}</option> - </select> - </label> - </div> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Sortable:</label> + <label class="defaultFontSize" class="checkbox" for="sortable"> + <input [(ngModel)]="sortable" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="sortable" + type="checkbox" value="{{finalEditRowGetObj.sortable}}"><i + class="skin"></i><span></span> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Visible:</label> + <label class="defaultFontSize" class="checkbox" for="visible"> + <input [(ngModel)]="visible" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="visible" + type="checkbox" value="true"><i class="skin"></i><span></span> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Drill-down Link: + <mat-icon (click)="drillDownLinkPage()" aria-hidden="false" aria-label="edit">edit + </mat-icon> + </label> + <label><select [(ngModel)]="drilldownURL" class="browser-default custom-select defaultFontSize" + placeholder="Select Report Type" required="required" + value="{{finalEditRowGetObj.drilldownURL}}"> + <option class="defaultFontSize" selected value="">Select Drill Down Link</option> + <option *ngFor="let URLObj of URLListObjArray" class="defaultFontSize" + value="{{URLObj.id}}">{{URLObj.id}}|{{URLObj.name}}</option> + </select> + </label> + </div> + <div> + <label class="defaultFontSize1">Advanced Display + <mat-icon (click)="editDisplay()" *ngIf="semaphoreName !== 'No Display'" aria-hidden="false" + aria-label="edit">edit + </mat-icon> + <mat-icon (click)="addNewDisplay()" aria-hidden="false" aria-label="add">add</mat-icon> + </label> + <label><select [(ngModel)]="semaphoreName" class="browser-default custom-select defaultFontSize" + placeholder="Select Report Type" required="required" + value="{{semaphoreName}}"> + <option class="defaultFontSize" selected>No Display</option> + <option *ngFor="let sem of semaphoreList.semaphore" class="defaultFontSize" + value="{{sem.semaphoreName}}">{{sem.semaphoreName}}</option> + </select> + </label> + </div> + <br/> + <br/> + <div> + <label class="defaultFontSize1">Total for the column:</label> + <label><select [(ngModel)]="displayTotal" class="browser-default custom-select defaultFontSize" + placeholder="Select Report Type" required="required" + value="{{finalEditRowGetObj.displayTotal}}"> + <option selected value="">Select Total</option> + <option *ngFor="let TotalListObj of TotalColListObjArray" + value="{{TotalListObj.id}}">{{TotalListObj.name}}</option> + </select> + </label> + </div> </div> </div> </div> </div> <div class="card-footer" style="width: 1000px; padding-left: 770px;"> - <button *ngIf="!showConfirmButton && !showAdvancedDisplayPage" (click)="save();" class="btn btn-alt btn-small">Save</button> - <button *ngIf="showConfirmButton && !showAdvancedDisplayPage" (click)="complete();" class="btn btn-alt btn-small">Confirm</button> + <button (click)="save();" *ngIf="!showConfirmButton && !showAdvancedDisplayPage" + class="btn btn-alt btn-small">Save + </button> + <button (click)="complete();" *ngIf="showConfirmButton && !showAdvancedDisplayPage" + class="btn btn-alt btn-small">Confirm + </button> <button (click)="close()" class="btn btn-alt btn-small">Cancel</button> </div> </div> </app-columns-edit-component> - <span class="ecomp-spinner" *ngIf="showSpinner"></span> +<span *ngIf="showSpinner" class="ecomp-spinner"></span> <div class="app-data-table"> - <table mat-table class="full-width-table app-data-table" matSort aria-label="Elements"> - <!-- Id Column --> - <ng-container matColumnDef="id"> - <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">ID</th> - <td mat-cell *matCellDef="let row">{{row.id}}</td> - </ng-container> + <table aria-label="Elements" class="full-width-table app-data-table" mat-table matSort> + <!-- Id Column --> + <ng-container matColumnDef="id"> + <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>ID</th> + <td *matCellDef="let row" mat-cell>{{row.id}}</td> + </ng-container> - <!-- No Column --> - <ng-container matColumnDef="no"> - <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">NO</th> - <td mat-cell *matCellDef="let row">{{row.no}}</td> - </ng-container> + <!-- No Column --> + <ng-container matColumnDef="no"> + <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>NO</th> + <td *matCellDef="let row" mat-cell>{{row.no}}</td> + </ng-container> - <!-- Name Column --> - <ng-container matColumnDef="name"> - <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">NAME</th> - <td mat-cell *matCellDef="let row">{{row.name}}</td> - </ng-container> + <!-- Name Column --> + <ng-container matColumnDef="name"> + <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>NAME</th> + <td *matCellDef="let row" mat-cell>{{row.name}}</td> + </ng-container> - <!-- Name Column --> - <ng-container matColumnDef="edit"> - <th mat-header-cell *matHeaderCellDef mat-sort-header class="defaultFontSize">EDIT</th> - <td mat-cell *matCellDef="let row"><mat-icon aria-hidden="false" aria-label="edit" (click)="editRecord(row.id)">edit</mat-icon></td> + <!-- Name Column --> + <ng-container matColumnDef="edit"> + <th *matHeaderCellDef class="defaultFontSize" mat-header-cell mat-sort-header>EDIT</th> + <td *matCellDef="let row" mat-cell> + <mat-icon (click)="editRecord(row.id)" aria-hidden="false" aria-label="edit">edit</mat-icon> + </td> </ng-container> - <tr mat-header-row *matHeaderRowDef="displayedColumns"></tr> - <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> - </table> + <tr *matHeaderRowDef="displayedColumns" mat-header-row></tr> + <tr *matRowDef="let row; columns: displayedColumns;" mat-row></tr> + </table> - <mat-paginator #paginator - [length]="dataSource?.data.length" - [pageIndex]="0" - [pageSize]="25" - [pageSizeOptions]="[25, 50, 100, 250]"> - </mat-paginator> + <mat-paginator #paginator + [length]="dataSource?.data.length" + [pageIndex]="0" + [pageSizeOptions]="[25, 50, 100, 250]" + [pageSize]="25"> + </mat-paginator> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts index e9b8ff85..c4c200e7 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.spec.ts @@ -78,8 +78,10 @@ describe('ColumnListComponent', () => { it('should test close method',()=>{ let spy1=spyOn(_columnService,'getColumnList').and.returnValue(Observable.of('')); + const spy = spyOn((component as any).changeDetectorRefs, 'detectChanges'); component.close(); expect(spy1).toHaveBeenCalled(); + expect(spy).toHaveBeenCalled(); expect(component.finalObjArr).toEqual([]); expect(component.finalGetObj).toEqual(''); expect(component.dataSource.data).toEqual(component.finalObjArr); @@ -103,7 +105,9 @@ it('should test onCompleted method',()=>{ it('should test save method',()=>{ component.noWrap=true; + const spy = spyOn((component as any).changeDetectorRefs, 'detectChanges'); component.save(); + expect(spy).toHaveBeenCalled(); expect(component.showSpinner).toBe(true); expect(component.finalPOSTObj["tabId"]).toEqual("ColEdit"); expect(component.finalPOSTObj["tabName"]).toEqual("Column Edit"); @@ -140,8 +144,10 @@ it('should test save method',()=>{ it('should test if codition inside save method',()=>{ component.showSaveColDialog=true; let spy=spyOn(_columnService,'postColumnChanges').and.returnValue(Observable.of('you object')) + const spy1 = spyOn((component as any).changeDetectorRefs, 'detectChanges'); component.save(); expect(spy).toHaveBeenCalled(); + expect(spy1).toHaveBeenCalled(); expect(component.EditColstatus).toEqual("Success!"); expect(component.EditColmessage).toEqual("Your change has been saved! Row definition is updated."); expect(component.showSaveColDialog).toBe(false); @@ -151,8 +157,10 @@ it('should test if codition inside save method',()=>{ it('should test else codition inside save method',()=>{ component.showSaveColDialog=true; let spy=spyOn(_columnService,'postColumnChanges').and.returnValue(Observable.of('')) + const spy1 = spyOn((component as any).changeDetectorRefs, 'detectChanges'); component.save(); expect(spy).toHaveBeenCalled(); + expect(spy1).toHaveBeenCalled(); expect(component.EditColstatus).toEqual("Failure!"); expect(component.EditColmessage).toEqual("Row definition could not be updated."); expect(component.showSaveColDialog).toBe(false); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts index 25f5109c..193e5ad0 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/column-list/column-list.component.ts @@ -1,28 +1,23 @@ -import { AfterViewInit, Component, OnInit, ViewChild, SimpleChange, Input, Output } from '@angular/core'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; -import { MatTable } from '@angular/material/table'; -import { DataTableDataSource, DataTableItem } from './column-list-datasource'; -import { HttpClient } from '@angular/common/http'; -import { environment } from '../../../../../../../environments/environment'; -import { ColumnService } from '../column.service'; +import {ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, ViewChild} from '@angular/core'; +import {MatPaginator} from '@angular/material/paginator'; +import {MatSort} from '@angular/material/sort'; +import {MatTable} from '@angular/material/table'; +import {DataTableDataSource, DataTableItem} from './column-list-datasource'; +import {HttpClient} from '@angular/common/http'; +import {ColumnService} from '../column.service'; import {SemaphoreList} from '../model/semaphore-list'; import {Semaphore} from '../model/semaphore'; @Component({ selector: 'app-column-list', templateUrl: './column-list.component.html', - styleUrls: ['./column-list.component.css'] + styleUrls: ['./column-list.component.css'], }) export class ColumnListComponent implements OnInit { @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator; @ViewChild(MatSort, {static: false} as any) sort: MatSort; @ViewChild(MatTable, {static: false} as any) table: MatTable<DataTableItem>; - @Input('reportId') reportId: number; - - - dataSource: DataTableDataSource; finalGetObj: {}; finalEditRowGetObj: {}; @@ -31,7 +26,6 @@ export class ColumnListComponent implements OnInit { message: string; showDialog: boolean; closable: boolean; - columnId: string; id: string; name: string; @@ -59,8 +53,6 @@ export class ColumnListComponent implements OnInit { finalPOSTObj: {}; isDisabled: boolean; showConfirmButton: boolean; - - /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */ displayedColumns = ['no', 'id', 'name', 'edit']; SQLstatus: string; SQLmessage: string; @@ -68,7 +60,6 @@ export class ColumnListComponent implements OnInit { Colclosable: boolean; EditColmessage: string; EditColstatus: string; - showEditDrillDownPage: boolean; showAdvancedDisplayPage = false; drillDownReportId: string; @@ -81,45 +72,47 @@ export class ColumnListComponent implements OnInit { semaphoreList: SemaphoreList; semaphoreName: String; semaphoreId: String; - private newSemaphoreList: any; - private addDisplay = false; incomingDrillDownParams: string; isIncomingDrillDownParams: boolean; + SQLclosable: any; + private newSemaphoreList: any; + private addDisplay = false; + columnList: any; - constructor(private _http: HttpClient, private _columnService: ColumnService) { + constructor(private _http: HttpClient, + private _columnService: ColumnService, + private changeDetectorRefs: ChangeDetectorRef) { this.showEditDrillDownPage = false; this.showAdvancedDisplayPage = false; this.showConfirmButton = false; this.addDisplay = false; - this.dataSource = new DataTableDataSource(); - - this.finalGetObj = new Object(); - this.finalObjArr = new Array(); - this.finalEditRowGetObj = new Object(); - this.URLListObjArray = new Array(); - this.TotalColListObjArray = new Array(); - this.finalPOSTObj = new Object(); - this.drillDownObj = new Object(); + this.finalGetObj = {}; + this.finalObjArr = []; + this.finalEditRowGetObj = {}; + this.URLListObjArray = []; + this.TotalColListObjArray = []; + this.finalPOSTObj = {}; + this.drillDownObj = {}; this.checkCnt = 0; this.showSpinner = false; this.semaphoreList = new class implements SemaphoreList { semaphore: Semaphore[]; }; this.semaphoreName = 'No Display'; + this.semaphoreId = ''; this.incomingDrillDownParams = ''; this.isIncomingDrillDownParams = false; - } ngOnInit() { - this.showSpinner = true; this.displayTable = true; this._columnService.getColumnList() .subscribe((response) => { this.showSpinner = true; this.finalGetObj = response; + this.columnList = response; let fgo_counter = 0; while (this.finalGetObj[fgo_counter]) { this.finalGetObj[fgo_counter]['no'] = fgo_counter + 1; @@ -136,8 +129,6 @@ export class ColumnListComponent implements OnInit { }); this.showDialog = false; this.showSaveColDialog = false; - - } @@ -151,7 +142,11 @@ export class ColumnListComponent implements OnInit { editRecord(id: string) { this.showSpinner = true; - + this.semaphoreList = new class implements SemaphoreList { + semaphore: Semaphore[]; + }; + this.semaphoreName = 'No Display'; + this.semaphoreId = ''; this.columnId = id; this._columnService.getIndividualColumnData(id) .subscribe((response) => { @@ -162,13 +157,13 @@ export class ColumnListComponent implements OnInit { this.visible = this.finalEditRowGetObj['visible']; this.dependsOnFormFields = this.finalEditRowGetObj['depeondsOnForField']; this.dataType = this.finalEditRowGetObj['dataType']; - this.groupByPos = (this.finalEditRowGetObj['groupByPos'] == null ? 0 : this.finalEditRowGetObj['groupByPos'] ); + this.groupByPos = (this.finalEditRowGetObj['groupByPos'] == null ? 0 : this.finalEditRowGetObj['groupByPos']); this.customTextForSubTotal = this.finalEditRowGetObj['subTotalCustomText']; this.hideRepeatedValues = this.finalEditRowGetObj['hideRepeatedKey']; this.multiGroupColumnLevel = (this.finalEditRowGetObj['level'] == null ? 0 : this.finalEditRowGetObj['level']); - this.colspan = (this.finalEditRowGetObj['colspan'] == null ? 0 : this.finalEditRowGetObj['colspan']); + this.colspan = (this.finalEditRowGetObj['colspan'] == null ? 0 : this.finalEditRowGetObj['colspan']); this.displayName = this.finalEditRowGetObj['displayName']; - this.displayWidthInPixel = (this.finalEditRowGetObj['displayWidthInPixel'] == null ? 0 : this.finalEditRowGetObj['displayWidthInPixel'] ); + this.displayWidthInPixel = (this.finalEditRowGetObj['displayWidthInPixel'] == null ? 0 : this.finalEditRowGetObj['displayWidthInPixel']); this.indentation = (this.finalEditRowGetObj['indentation'] == null ? 0 : this.finalEditRowGetObj['indentation']); this.displayAlignment = this.finalEditRowGetObj['displayAlignment']; this.displayHeaderAlignment = (this.finalEditRowGetObj['displayHeaderAlignment'] == null ? '' : this.finalEditRowGetObj['displayHeaderAlignment']); @@ -179,7 +174,7 @@ export class ColumnListComponent implements OnInit { this.drillDownObj['drillDownUrl'] = this.drilldownURL; this.drillDownObj['drillDownParams'] = this.drilldownParams; this.drillDownObj['drillDownType'] = this.drilldownType; - this.semaphoreList = this.finalEditRowGetObj['semaphoreList']; + this.semaphoreList = this.finalEditRowGetObj['semaphoreList']; this.semaphoreId = this.finalEditRowGetObj['semaphoreId']; if (this.semaphoreId === '') { this.semaphoreName = 'No Display'; @@ -192,7 +187,7 @@ export class ColumnListComponent implements OnInit { } } } - this. displayTotal = (this.finalEditRowGetObj['displayTotal'] == null ? '' : this.finalEditRowGetObj['displayTotal']); + this.displayTotal = (this.finalEditRowGetObj['displayTotal'] == null ? '' : this.finalEditRowGetObj['displayTotal']); this._columnService.getDrillDownReportList() .subscribe((responseURLList) => { this.URLListObj = responseURLList; @@ -203,7 +198,6 @@ export class ColumnListComponent implements OnInit { listCtr++; } }); - this._columnService.getResponseTotalColsList() .subscribe((responseTotalColList) => { this.TotalColListObj = responseTotalColList; @@ -227,13 +221,13 @@ export class ColumnListComponent implements OnInit { close() { + this.changeDetectorRefs.detectChanges(); this._columnService.getColumnList() .subscribe((response) => { this.showSpinner = true; this.dataSource = new DataTableDataSource(); this.finalObjArr = []; this.finalGetObj = response; - let fgo_counter = 0; while (this.finalGetObj[fgo_counter]) { this.finalGetObj[fgo_counter]['no'] = fgo_counter + 1; @@ -270,15 +264,12 @@ export class ColumnListComponent implements OnInit { save() { - + this.changeDetectorRefs.detectChanges(); this.showSpinner = true; - this.finalPOSTObj['tabId'] = 'ColEdit'; this.finalPOSTObj['tabName'] = 'Column Edit'; - this.finalPOSTObj['colId'] = this.id; this.finalPOSTObj['colName'] = this.name; - this.finalPOSTObj['colType'] = ''; this.finalPOSTObj['colspan'] = this.colspan; this.finalPOSTObj['dataType'] = this.dataType; @@ -309,41 +300,38 @@ export class ColumnListComponent implements OnInit { if (this.semaphoreName === 'No Display') { this.semaphoreId = ''; } else { - for ( let slcount = 0 ; slcount < this.semaphoreList.semaphore.length; slcount++) { - if (this.semaphoreName === this.semaphoreList.semaphore[slcount].semaphoreName) { - this.semaphoreId = this.semaphoreList.semaphore[slcount].semaphoreId; + if(this.semaphoreList && this.semaphoreList.semaphore){ + for (let slcount = 0; slcount < this.semaphoreList.semaphore.length; slcount++) { + if (this.semaphoreName === this.semaphoreList.semaphore[slcount].semaphoreName) { + this.semaphoreId = this.semaphoreList.semaphore[slcount].semaphoreId; + this.semaphoreList.semaphore[slcount].comment = this.id; + } } } } this.finalPOSTObj['semaphoreId'] = this.semaphoreId; this.finalPOSTObj['semaphoreList'] = this.semaphoreList; - this._columnService.postColumnChanges(this.finalPOSTObj) .subscribe((finalPOSTResponse) => { - if (finalPOSTResponse) { this.EditColstatus = 'Success!'; this.EditColmessage = 'Your change has been saved! Row definition is updated.'; this.showSaveColDialog = !this.showSaveColDialog; - this.Colclosable = true; - } else { this.EditColstatus = 'Failure!'; this.EditColmessage = 'Row definition could not be updated.'; this.showSaveColDialog = !this.showSaveColDialog; - this.Colclosable = true; } - this.showEditDrillDownPage = false; this.showAdvancedDisplayPage = false; this.isIncomingDrillDownParams = false; this.addDisplay = false; this.showSpinner = false; - }); + }); } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html index 63d024b1..55df3786 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.html @@ -6,12 +6,22 @@ <input [(ngModel)]="semaphore.semaphoreName" class="defaultFontSize" id="semaphoreName" name="displayName" style="width: 60%" type="text" > </div> +<label class="defaultFontSize1">Comments: {{semaphore.comment}}</label> <div class="field-group"> <mat-form-field> <mat-label class="b2b-dro">Apply To:</mat-label> <mat-select data-select-color="blue" [(ngModel)]="semaphore.semaphoreType" aria-label="reportType" placeholder="Select chart Type"> <mat-option value="CELL">Current Value Only</mat-option> - <mat-option value="CELL">Entire Row</mat-option> + <mat-option value="ROW">Entire Row</mat-option> + </mat-select> + </mat-form-field> +</div> +<div class="field-group"> + <mat-form-field> + <mat-label class="b2b-dro">Target Column:</mat-label> + <mat-select data-select-color="blue" [(ngModel)]="semaphore.target" aria-label="reportType" placeholder="Select chart Type"> + <mat-option value="">None</mat-option> + <mat-option *ngFor="let column of columnList" [value]="column.id">{{column.name}}</mat-option> </mat-select> </mat-form-field> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts index 2b0e6c6d..7458fd1f 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/columns/columns-edit-component/column-advanced-display/column-advanced-display.component.ts @@ -14,6 +14,8 @@ export class ColumnAdvancedDisplayComponent implements OnInit { @Input('inputSemaphoreName') inputSemaphoreName: String; @Input('addNew') addNew: boolean; @Input('columnName') columnName: String; + @Input('columnList') columnList: any; + @Output() completed = new EventEmitter<any>(); semaphoreObjArr: {}[]; semaphore: Semaphore; @@ -116,6 +118,7 @@ export class ColumnAdvancedDisplayComponent implements OnInit { semCount = this.semaphoreArr.semaphore.length + 1; } else { semCount = 1 ; } this.newSemaphore['comment'] = this.columnName; + this.newSemaphore['target'] = ''; this.newSemaphore['semaphoreType'] = 'CELL'; this.newSemaphore['semaphoreName'] = 'Display Formatting ' + semCount; this.newSemaphore['semaphoreId'] = 'sem' + semCount; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.component.ts index 15ec1799..25137322 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.component.ts @@ -28,6 +28,7 @@ export class DashboardReportGridComponent implements OnInit { @Output() transferDashboardObj = new EventEmitter<any>(); + name: any; constructor(private _dashboardReportGridService: DashboardReportGridService) { this.reportDataList = []; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts index 0c1781bc..3cd72584 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/dashboard-report-grid/dashboard-report-grid.service.ts @@ -12,6 +12,6 @@ export class DashboardReportGridService { getReportList() : Observable<any> { - return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0&show_all=true"); + return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0"); } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html index fa6570fb..efe84957 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.html @@ -60,8 +60,6 @@ required="required" value="Select Report Type" value="{{dataSrc}}"> <option class="defaultFontSize" selected>Select Data Source</option> <option class="defaultFontSize" value="local">local</option> - <option class="defaultFontSize" value="e911_prod">e911_prod</option> - <option class="defaultFontSize" value="e911_dev">e911_dev</option> </select> </div> <br/> @@ -116,16 +114,12 @@ <select [(ngModel)]="maxRows" class="browser-default custom-select defaultFontSize" id="maxRows" required="required"> <option class="defaultFontSize" selected>Select Max Rows</option> - <option class="defaultFontSize" value="100">100</option> - <option class="defaultFontSize" value="200">200</option> - <option class="defaultFontSize" value="300">300</option> - <option class="defaultFontSize" value="400">400</option> <option class="defaultFontSize" value="500">500</option> <option class="defaultFontSize" value="1000">1000</option> <option class="defaultFontSize" value="10000">10000</option> - <option class="defaultFontSize" value="60000">60000</option> + <option class="defaultFontSize" value="65000">65000</option> <option class="defaultFontSize" value="100000">100000</option> - <option class="defaultFontSize" value="1000000">1000000</option> + <option class="defaultFontSize" value="750000">750000</option> </select> </div> <br/> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts index 0259fdef..0ca05b4c 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/definition/definition.component.ts @@ -89,9 +89,9 @@ export class DefinitionComponent implements OnInit, OnDestroy { ngOnInit() { sessionStorage.clear(); - const myItem = localStorage.getItem('id'); + const myItem = localStorage.getItem('notes'); localStorage.clear(); - localStorage.setItem('id', myItem); + localStorage.setItem('notes', myItem); this.isEdit = true; this.showDialog = false; this.showSpinner = true; @@ -385,7 +385,7 @@ export class DefinitionComponent implements OnInit, OnDestroy { ]; this.finalPostObj['runtimeColSortDisabled'] = this.disableColumnSort; this.finalPostObj['numFormCols'] = this.runTimeFormNum; - if (this.reportTitle && this.reportTitle.length > 0) { + if (undefined != this.reportTitle && this.reportTitle.length > 0) { this.finalPostObj['reportTitle'] = this.reportTitle; } else { this.finalPostObj['reportTitle'] = this.reportName; @@ -514,7 +514,7 @@ export class DefinitionComponent implements OnInit, OnDestroy { ]; this.finalPostObj['runtimeColSortDisabled'] = this.disableColumnSort; this.finalPostObj['numFormCols'] = this.runTimeFormNum; - if ( this.reportTitle && this.reportTitle.length > 0) { + if ( this.reportTitle.length > 0) { this.finalPostObj['reportTitle'] = this.reportTitle; } else { this.finalPostObj['reportTitle'] = this.reportName;; diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/edit-group.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/edit-group.component.html new file mode 100644 index 00000000..8a19abf7 --- /dev/null +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/edit-group.component.html @@ -0,0 +1,32 @@ +<h1 mat-dialog-title>Edit Form Fields Group</h1> +<div class="edit-popup" mat-dialog-content> + <p>Group Name</p> + <mat-form-field > + <input matInput [(ngModel)]="data['editGroupInfo'].name" disabled> + </mat-form-field> + <mat-form-field> + <mat-label>Select Form Fields</mat-label> + <mat-select multiple [(ngModel)]="data['editGroupInfo'].formFieldList"> + <mat-option *ngFor="let item of data['formFieldsListObj']; let i = index;" value="{{item.id}}">{{item.name}}</mat-option> + </mat-select> + </mat-form-field> +</div> +<div class="dialog-action" mat-dialog-actions> + <button mat-button (click)="onNoClick()">Close</button> + <button class="update-button" mat-button [mat-dialog-close]="editGroupInfo" cdkFocusInitial>Update</button> +</div> +<style scoped> + ::ng-deep .cdk-global-overlay-wrapper, .cdk-overlay-container { + z-index: 1000 !important; + } + .edit-popup{ + height: 450px; + } + .update-button{ + background-color: #006496; + color: white; + } + .dialog-action{ + align-items: right; + } +</style>
\ 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/form-fields/form-fields-add-edit/form-fields-add-edit.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css index 52a77240..578b33e8 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields-add-edit/form-fields-add-edit.component.css @@ -1,13 +1,3 @@ - .overlay { - position: fixed; - top: 0; - bottom: 0; - left: 0; - right: 0; - background-color: rgba(0, 0, 0, 0.705); - z-index: 999; - } - .dialog { z-index: 1000; display: flex; @@ -18,10 +8,19 @@ margin-right: auto; margin-left: auto; margin-top: 50px; - height: 900px; + height: 690px; width: 1024px; background-color: #fff; padding: 12px; box-shadow: 0 7px 8px -4px rgba(0, 0, 0, 0.349), 0 13px 19px 2px rgba(0, 0, 0, 0.349), 0 5px 24px 4px rgba(0, 0, 0, 0.349); } -
\ No newline at end of file + +.overlay { + position: fixed; + top: 0; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(0, 0, 0, 0.705); + z-index: 999; +} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css index e4753426..96d0a71f 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.css @@ -2440,10 +2440,10 @@ a.btn { font-size: 1.7rem; } .btn-small { - /* padding: 10px 19px 9px 18px; */ + padding: 10px 19px 9px 20px; font-size: 1.5rem; - border-radius: 8px; } - + border-radius: 8px; +} .btn-fullwidth { width: 100%; } @@ -6278,4 +6278,13 @@ table, tr, td, th { td{ height: 5px; -}
\ No newline at end of file +} + +.edit-group{ + margin-left: 10%; +} + +.center{ + margin: auto; + width: 50%; +} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html index 028c9807..63062109 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.html @@ -1,242 +1,287 @@ <app-sql-validate-changes-dialog-component [(visible)]="showDialog1"> - <span class="ecomp-spinner" *ngIf="showVerifySpinner"></span> - <div *ngIf="!showVerifySpinner"> + <span *ngIf="showVerifySpinner" class="ecomp-spinner"></span> + <div *ngIf="!showVerifySpinner"> <div class="card"> <div class="card-body" style="width: 800px; height: 615px; "> <div style="height:600px; overflow: scroll;"> - <div class="modalTitle">{{Validatestatus}}</div> - <button *ngIf="Validateclosable" (click)="closeValidateModal()" aria-label="Close" class="dialog__close-btn">X</button> - <br/> - <app-sql-validate-success-dialog-component [tableObj] = "validateResponseString"></app-sql-validate-success-dialog-component> - <!-- <app-sql-validate-error-dialog-component *ngIf="!ValidatePostResponse.query" [tableObj] = "GetValidateResponseString()"></app-sql-validate-error-dialog-component> --> + <div class="modalTitle">{{Validatestatus}}</div> + <button (click)="closeValidateModal()" *ngIf="Validateclosable" aria-label="Close" + class="dialog__close-btn">X + </button> + <br/> + <app-sql-validate-success-dialog-component + [tableObj]="validateResponseString"></app-sql-validate-success-dialog-component> + <!-- <app-sql-validate-error-dialog-component *ngIf="!ValidatePostResponse.query" [tableObj] = "GetValidateResponseString()"></app-sql-validate-error-dialog-component> --> </div> </div> <div class="card-footer" style="width: 800px;"> - <button style="font-size: 17px;" (click)="closeValidateModal()" class="btn btn-alt btn-small">Close</button> + <button (click)="closeValidateModal()" class="btn btn-alt btn-small" style="font-size: 17px;">Close + </button> </div> </div> - </div> + </div> </app-sql-validate-changes-dialog-component> -<app-form-fields-add-edit [(visible)]="showDialog" > - <div class="card"> - <div class="card-header"> - <div class="modalTitle">Report Form Field - Edit</div> - <button *ngIf="closable" (click)="close()" aria-label="Close" class="dialog__close-btn">X</button> - <br/> +<app-form-fields-add-edit [(visible)]="showDialog"> + <div class="card"> + <div class="card-header"> + <div class="modalTitle">Report Form Field - Edit</div> + <button (click)="close()" *ngIf="closable" aria-label="Close" class="dialog__close-btn">X</button> + <br/> + </div> + + + <div class="card-body" style="width: 100px; height: 760px; "> + <div style="height:737px; overflow: scroll; overflow-x: hidden;"> + <br/> + <br/> + + + <label class="defaultLabelFontSize">Field Name:</label><label><input [(ngModel)]="fieldName" + class="defaultFontSize" id="fieldName" + type="text" + value="{{fieldName}}"/></label> + + + <br/> + <br/> + <br/> + <div class="field-group"> + <label>Field Type:</label> + <select [(ngModel)]="fieldType" class="browser-default custom-select defaultFontSize" id="fieldType" + required="required" value="{{fieldType}}"> + <option class="defaultFontSize" selected>Select Field Type</option> + <option class="defaultFontSize" value="TEXT">Text Box</option> + <option class="defaultFontSize" value="TEXTAREA">TEXTAREA</option> + <option class="defaultFontSize" value="LIST_BOX">List Box</option> + <option class="defaultFontSize" value="LIST_MULTI_SELECT">Multi-select List Box</option> + <option class="defaultFontSize" value="HIDDEN">Hidden</option> + </select> + </div> + <br/> + <br/> + + <div class="field-group"> + <label>Visible:</label> + <select [(ngModel)]="visible" class="browser-default custom-select defaultFontSize" id="visible" + required="required" value="{{visible}}"> + <option class="defaultFontSize" selected value="YES">YES</option> + <option class="defaultFontSize" value="NO">NO</option> + </select> + </div> + + <br/> + <br/> + <div> + <label class="defaultLabelFontSize">Is used in Group By Clause?:</label> + <label class="defaultLabelFontSize" class="checkbox" for="groupFormField"> + <input [(ngModel)]="groupFormField" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="groupFormField" + type="checkbox" value="{{groupFormField}}"><i class="skin"></i><span></span> + </label> + </div> + + <br/> + <br/> + <div> + <label class="defaultLabelFontSize">SQL as Default Value:</label> + <label class="defaultLabelFontSize" class="checkbox" for="isDefaultSql"> + <input [(ngModel)]="isDefaultSql" class="ng-valid ng-dirty ng-valid-parse ng-touched" id="isDefaultSql" + type="checkbox" value="{{isDefaultSql}}"><i class="skin"></i><span></span> + </label> + </div> + + <div *ngIf="isDefaultSql"> + <br/> + <br/> + <div class="field-group"> + <label>Default SQL:</label> + <textarea [(ngModel)]="fieldDefaultSQL" class="defaultFontSize" id="fieldDefaultSQL" + type="textarea" value="{{fieldDefaultSQL}}"></textarea> + <div class="center"> + <button (click)="verify('Default')" class="btn btn-alt btn-small" style="font-size: 17px;"> + Verify + </button> </div> - - - <div class="card-body" style="width: 1000px; height: 760px; "> - <div style="height:737px; overflow: scroll; overflow-x: hidden;"> - <br/> - <br/> - - - <label class="defaultLabelFontSize">Field Name:</label><label><input class="defaultFontSize" id="fieldName" type="text" [(ngModel)]="fieldName" value="{{fieldName}}"/></label> - - - - <br/> - <br/> - <br/> - <div class="field-group"> - <label>Field Type:</label> - <select class="browser-default custom-select defaultFontSize" id="fieldType" required="required" [(ngModel)]="fieldType" value="{{fieldType}}"> - <option class="defaultFontSize" selected>Select Field Type </option> - <option class="defaultFontSize" value="TEXT">Text Box</option> - <option class="defaultFontSize" value="TEXTAREA">TEXTAREA</option> - <option class="defaultFontSize" value="LIST_BOX">List Box</option> - <option class="defaultFontSize" value="LIST_MULTI_SELECT">Multi-select List Box</option> - <option class="defaultFontSize" value="HIDDEN">Hidden</option> - </select> - </div> - <br/> - <br/> - - <div class="field-group"> - <label>Visible:</label> - <select class="browser-default custom-select defaultFontSize" id="visible" required="required" [(ngModel)]="visible" value="{{visible}}"> - <option class="defaultFontSize" value="YES" selected>YES</option> - <option class="defaultFontSize" value="NO">NO</option> - </select> - </div> - - <br/> - <br/> - <div> - <label class="defaultLabelFontSize">Is used in Group By Clause?:</label> - <label class="defaultLabelFontSize" for="groupFormField" class="checkbox"> - <input id="groupFormField" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="groupFormField" value="{{groupFormField}}"><i class="skin"></i><span></span> - </label> - </div> - - <br/> - <br/> - <div> - <label class="defaultLabelFontSize">SQL as Default Value:</label> - <label class="defaultLabelFontSize" for="isDefaultSql" class="checkbox"> - <input id="isDefaultSql" type="checkbox" class="ng-valid ng-dirty ng-valid-parse ng-touched" [(ngModel)]="isDefaultSql" value="{{isDefaultSql}}"><i class="skin"></i><span></span> - </label> - </div> - - <div *ngIf="isDefaultSql"> - <br/> - <br/> - <div class="field-group"> - <label>Default SQL:</label> - <textarea class="defaultFontSize" id="fieldDefaultSQL" type="textarea" [(ngModel)]="fieldDefaultSQL" value="{{fieldDefaultSQL}}"></textarea> - <button style="font-size: 17px;" (click)="verify('Default')" class="btn btn-alt btn-small">Verify</button> - - </div> - </div> - <br/> - <div *ngIf="(fieldDefaultSQL == null || fieldDefaultSQL == '') && isDefaultSql == false"> - <label class="defaultLabelFontSize" >Default Value:</label> - <label><input class="defaultFontSize" id="defaultValue" type="text" [(ngModel)]="defaultValue" value="{{defaultValue}}"/></label> - - - </div> - <br/> - <br/> - <br/> - <div class="field-group"> - <label>Verify Field Value As:</label> - <select class="browser-default custom-select defaultFontSize" id="validationType" required="required" [(ngModel)]="validationType" value="{{validationType}}"> - <option class="defaultFontSize" value="" selected>Select Visibility </option> - <option class="defaultFontSize" value="">Do Not Perform Validation</option> - <option class="defaultFontSize" value="INTEGER">Integer</option> - <option class="defaultFontSize" value="POSITIVE_INTEGER">Positive Integer</option> - <option class="defaultFontSize" value="DATE">Date</option> - <option class="defaultFontSize" value="TIMESTAMP_SEC">Timestamp(Hour, Min, Sec)</option> - <option class="defaultFontSize" value="TIMESTAMP_MIN">Timestamp(Hour, Min)</option> - <option class="defaultFontSize" value="TIMESTAMP_HOUR">Timestamp(Hour)</option> - <option class="defaultFontSize" value="NON_NEGATIVE_INTEGER">Positive Integer Can not Be Zero</option> - <option class="defaultFontSize" value="FLOAT">Any Number</option> - <option class="defaultFontSize" value="NON_NEGATIVE_FLOAT">Positive Number</option> - <option class="defaultFontSize" value="POSITIVE_FLOAT">Positive Number Can Not Be Zero</option> - </select> - </div> - <br/> - <br/> - <div class="field-group"> - <label>SQL Generating Custom List of Values:</label> - <textarea class="defaultFontSize" id="fieldSQL" type="textarea" [(ngModel)]="fieldSQL" value="{{fieldSQL}}"></textarea> - <button style="font-size: 17px;" (click)="verify('Regular')" class="btn btn-alt btn-small">Verify</button> - </div> - <br/> - <br/> - <div> - <label class="defaultLabelFontSize">Provide Predefined List of Values: Do not use Predefined list - Generate list from database:</label><label><input class="defaultFontSize" id="predefinedValue" type="text" [(ngModel)]="predefinedValue" value="{{predefinedValue}}"/></label> - <button style="font-size: 17px;" (click)="addToList(predefinedValue)" class="btn btn-alt btn-small">Add to List</button> - </div> - <br/> - <br/> - - <div> - <div *ngFor="let value of predefinedValueList"> - <div style="margin-left: 5px;"> - <label >{{value.name}}</label> - <mat-icon aria-hidden="false" aria-label="delete" (click)="deleteFromList(value.id)">delete</mat-icon> - </div> - </div> - </div> - </div> - </div> - - <div class="card-footer" style="width: 1000px; height: 65px; padding-left: 770px;"> - <button style="font-size: 17px;" *ngIf="!showConfirmButton" (click)="save();" class="btn btn-alt btn-small">Save</button> - <button style="font-size: 17px;" *ngIf="showConfirmButton" (click)="complete();" class="btn btn-alt btn-small">Confirm</button> - <button style="font-size: 17px;" (click)="close()" class="btn btn-alt btn-small">Cancel</button> - </div> - - + </div> </div> -</app-form-fields-add-edit> + <br/> + <div *ngIf="(fieldDefaultSQL == null || fieldDefaultSQL == '') && isDefaultSql == false"> + <label class="defaultLabelFontSize">Default Value:</label> + <label><input [(ngModel)]="defaultValue" class="defaultFontSize" id="defaultValue" type="text" + value="{{defaultValue}}"/></label> -<div class="stdForm"> - <br/> - <div class="tab-content"> - <h3>Step 4 - Report Form Fields</h3> - + </div> + <br/> + <br/> + <br/> + <div class="field-group"> + <label>Verify Field Value As:</label> + <select [(ngModel)]="validationType" class="browser-default custom-select defaultFontSize" + id="validationType" required="required" value="{{validationType}}"> + <option class="defaultFontSize" selected value="">Select Visibility</option> + <option class="defaultFontSize" value="">Do Not Perform Validation</option> + <option class="defaultFontSize" value="INTEGER">Integer</option> + <option class="defaultFontSize" value="POSITIVE_INTEGER">Positive Integer</option> + <option class="defaultFontSize" value="DATE">Date</option> + <option class="defaultFontSize" value="TIMESTAMP_SEC">Timestamp(Hour, Min, Sec)</option> + <option class="defaultFontSize" value="TIMESTAMP_MIN">Timestamp(Hour, Min)</option> + <option class="defaultFontSize" value="TIMESTAMP_HOUR">Timestamp(Hour)</option> + <option class="defaultFontSize" value="NON_NEGATIVE_INTEGER">Positive Integer Can not Be Zero + </option> + <option class="defaultFontSize" value="FLOAT">Any Number</option> + <option class="defaultFontSize" value="NON_NEGATIVE_FLOAT">Positive Number</option> + <option class="defaultFontSize" value="POSITIVE_FLOAT">Positive Number Can Not Be Zero</option> + </select> + </div> + <br/> + <br/> + <div class="field-group"> + <label>SQL Generating Custom List of Values:</label> + <textarea [(ngModel)]="fieldSQL" class="defaultFontSize" id="fieldSQL" type="textarea" + value="{{fieldSQL}}"></textarea> + <div class="center"> + <button (click)="verify('Regular')" class="btn btn-alt btn-small" + style="font-size: 17px;">Verify + </button> + </div> + </div> + <br/> + <br/> + <div> + <label class="defaultLabelFontSize">Provide Predefined List of Values: Do not use Predefined list - + Generate list from database:</label><label><input [(ngModel)]="predefinedValue" class="defaultFontSize" + id="predefinedValue" type="text" + value="{{predefinedValue}}"/></label> + <button (click)="addToList(predefinedValue)" class="btn btn-alt btn-small" style="font-size: 17px;"> + Add to List + </button> + </div> + <br/> + <br/> + + <div> + <div *ngFor="let value of predefinedValueList"> + <div style="margin-left: 5px;"> + <label>{{value.name}}</label> + <mat-icon (click)="deleteFromList(value.id)" aria-hidden="false" aria-label="delete"> + delete + </mat-icon> + </div> + </div> + </div> + </div> </div> - <span class="ecomp-spinner" *ngIf="showSpinner"></span> - <br/> - <br/> - <h4>Form Field Groups</h4> - <br/> - <div *ngFor="let group of Groups"> - <button class="formFieldGroupButton" mat-button >{{group.name}}</button><mat-icon style="margin-left: 21%;" aria-hidden="false" aria-label="delete" (click)="deleteGroup(group.name)">delete</mat-icon> - <table style="margin-top: 10px;" class="app-data-table"> - - <th class="defaultFontSize">Order Number</th> - <th class="defaultFontSize">Field Name</th> - <th class="defaultFontSize">Delete From Group</th> - - <tr *ngFor="let item of group.formFieldList; let i = index;"> - <td> - {{item.orderSeq}} - </td> - <td> - {{item.name}} - </td> - <td> - <mat-icon aria-hidden="false" aria-label="delete" (click)="deleteFromGroup(item.id)">delete</mat-icon> - </td> - </tr> - - </table> - <br/> + <div class="card-footer" style="width: 1000px; height: 65px; padding-left: 770px;"> + <button (click)="save();" *ngIf="!showConfirmButton" class="btn btn-alt btn-small" style="font-size: 17px;"> + Save + </button> + <button (click)="complete();" *ngIf="showConfirmButton" class="btn btn-alt btn-small" + style="font-size: 17px;">Confirm + </button> + <button (click)="close()" class="btn btn-alt btn-small" style="font-size: 17px;">Cancel</button> </div> + + + </div> +</app-form-fields-add-edit> + + +<div class="stdForm"> + <br/> + <div class="tab-content"> + <h3>Step 4 - Report Form Fields</h3> + + </div> + <span *ngIf="showSpinner" class="ecomp-spinner"></span> + <br/> + <br/> + + <h4>Form Field Groups</h4> + <br/> + <div *ngFor="let group of Groups"> + <button class="formFieldGroupButton" mat-button>{{group.name}}</button> + <mat-icon (click)="deleteGroup(group.name)" aria-hidden="false" aria-label="delete" style="margin-left: 21%;"> + delete + </mat-icon> + <mat-icon (click)="editGroup(group)" aria-hidden="false" aria-label="edit" class="edit-group">edit</mat-icon> + <table class="app-data-table" style="margin-top: 10px;"> + + <th class="defaultFontSize">Order Number</th> + <th class="defaultFontSize">Field Name</th> + <th class="defaultFontSize">Delete From Group</th> + + <tr *ngFor="let item of group.formFieldList; let i = index;"> + <td> + {{item.orderSeq}} + </td> + <td> + {{item.name}} + </td> + <td> + <mat-icon (click)="deleteFromGroup(item.id)" aria-hidden="false" aria-label="delete">delete + </mat-icon> + </td> + </tr> + + </table> <br/> - <div class="field-group"> + </div> + <br/> + <div class="field-group"> <table style="width: auto; margin-left: 70%;"> - <tr> - <td><button style="font-size: 17px;" class="btn btn-alt btn-small" (click)="createGroup()" >Create Group</button></td> - <td><button style="font-size: 17px;" class="btn btn-alt btn-small" (click)="saveFormFieldGroups()" >Save Group</button></td> - </tr> + <tr> + <td> + <button (click)="createGroup()" class="btn btn-alt btn-small" style="font-size: 17px;">Create + Group + </button> + </td> + <td> + <button (click)="saveFormFieldGroups()" class="btn btn-alt btn-small" style="font-size: 17px;">Save + Group + </button> + </td> + </tr> </table> + </div> + <br/> + <h4>Form Field List</h4> + <div *ngIf="!showSpinner"> + + <table class="app-data-table" style="margin-top: 10px;"> + + <th class="defaultFontSize">Order Number</th> + <th class="defaultFontSize">Field Name</th> + <th class="defaultFontSize">Edit</th> + <th class="defaultFontSize">Delete</th> + + <tr *ngFor="let item of formFieldsListObj; let i = index;"> + <td> + {{item.orderSeq}} + </td> + <td> + {{item.name}} + </td> + <td> + <mat-icon (click)="edit(item.id); setDisplayMode('Edit');" aria-hidden="false" aria-label="edit"> + edit + </mat-icon> + </td> + <td> + <mat-icon (click)="delete(item.id)" aria-hidden="false" aria-label="delete">delete</mat-icon> + </td> + </tr> + + </table> + <br/> + + <div class="field-group"> + <button (click)="add(); setDisplayMode('Add');" class="btn btn-alt btn-small" + style="font-size: 17px; margin-left: 80%;">Add + </button> </div> <br/> - <h4>Form Field List</h4> - <div *ngIf="!showSpinner"> - - <table style="margin-top: 10px;" class="app-data-table"> - - <th class="defaultFontSize">Order Number</th> - <th class="defaultFontSize">Field Name</th> - <th class="defaultFontSize">Edit</th> - <th class="defaultFontSize">Order</th> - <th class="defaultFontSize">Delete</th> - - <tr *ngFor="let item of formFieldsListObj; let i = index;"> - <td> - {{item.orderSeq}} - </td> - <td> - {{item.name}} - </td> - <td> - <mat-icon aria-hidden="false" aria-label="edit" (click)="edit(item.id); setDisplayMode('Edit');">edit</mat-icon> - </td> - <td> - <mat-icon *ngIf="!isFirst(i)" aria-hidden="false" aria-label="expand_less" (click)="moveUpward(i)">expand_less</mat-icon> - <mat-icon *ngIf="!isLast(i)" aria-hidden="false" aria-label="expand_more" (click)="moveDownward(i)">expand_more</mat-icon> - </td> - <td> - <mat-icon aria-hidden="false" aria-label="delete" (click)="delete(item.id)">delete</mat-icon> - </td> - </tr> - - </table> - <br/> - - <div class="field-group"> - <button style="font-size: 17px; margin-left: 80%;" class="btn btn-alt btn-small" (click)="add(); setDisplayMode('Add');" >Add</button> - </div> - <br/> - <hr/> - </div> + <hr/> </div> +</div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts index e3bab3bb..e8a60849 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/form-fields/form-fields.component.ts @@ -1,644 +1,629 @@ -import { Component, OnInit, Input, Inject } from '@angular/core'; -import { FormFieldsService } from './form-fields.service'; -import { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Observable } from 'rxjs'; -import { MatSnackBar } from '@angular/material/snack-bar'; +import {Component, OnInit, Input, Inject} from '@angular/core'; +import {FormFieldsService} from './form-fields.service'; +import {MatDialog, MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; +import {Observable} from 'rxjs'; +import {MatSnackBar} from '@angular/material/snack-bar'; export interface DialogData { - animal: string; - name: string; + name: string; } @Component({ - selector: 'app-form-fields', - templateUrl: './form-fields.component.html', - styleUrls: ['./form-fields.component.css'] + selector: 'app-form-fields', + templateUrl: './form-fields.component.html', + styleUrls: ['./form-fields.component.css'] }) export class FormFieldsComponent implements OnInit { - @Input("reportId") reportId1 : string; - - formFieldsListObj : any[]; - postMoveUpwrdObj : {}; - postDownwardObj : {}; - orderSeqOfDown : number; - orderSeqOfUp : number; - showDialog : boolean; - closable : boolean; - sqlAsDefaultValue : Boolean; - showDefaultSQLOption : boolean; - verifyFieldValueAs : number; - predefinedValueList : any[]; - predefinedValue : string; - tabId : string; - tabName : string; - validationType : string; - visible : string; - orderSeq : number; - message : any; - groupFormField : boolean; - fieldType : string; - fieldSQL : string; - fieldName : string; - fieldId : string; - fieldDefaultSQL : string; - errorStackTrace : any; - errorMessage : any; - defaultValue : any; - finalPOSTObj : any; - mode : string; - showSpinner : boolean; - showDialog1 : boolean; - queryObj : {}; - validateResponseString : string; - showVerifySpinner : boolean; - Groups : {}[] = []; - isDefaultSql : boolean; - - - - constructor(private _formFieldsService : FormFieldsService, public dialog: MatDialog, private _snackBar: MatSnackBar) { - this.formFieldsListObj = new Array(); - this.postMoveUpwrdObj = new Object(); - this.postDownwardObj = new Object(); - this.showDialog = false; - this.showDefaultSQLOption = false; - this.closable = true; - this.predefinedValueList = new Array(); - this.finalPOSTObj = new Object(); - this.showSpinner = false; - this.showDialog1 = false; - this.queryObj = {}; - this.showVerifySpinner = false; - this.Groups = new Array(); - this.isDefaultSql = false; - } - - ngOnInit() { - this.showSpinner = true; - this._formFieldsService.getListOfFormFields() - .subscribe((responseFormFields) => { - this.showSpinner = true; - for (let m = 0; m < responseFormFields.length; m++) { - responseFormFields[m]["orderSeq"] = m + 1; - this.formFieldsListObj.push(responseFormFields[m]); - } + @Input('reportId') reportId1: string; + + formFieldsListObj: any[]; + postMoveUpwrdObj: {}; + postDownwardObj: {}; + orderSeqOfDown: number; + orderSeqOfUp: number; + showDialog: boolean; + closable: boolean; + sqlAsDefaultValue: Boolean; + showDefaultSQLOption: boolean; + verifyFieldValueAs: number; + predefinedValueList: any[]; + predefinedValue: string; + tabId: string; + tabName: string; + validationType: string; + visible: string; + orderSeq: number; + message: any; + groupFormField: boolean; + fieldType: string; + fieldSQL: string; + fieldName: string; + fieldId: string; + fieldDefaultSQL: string; + errorStackTrace: any; + errorMessage: any; + defaultValue: any; + finalPOSTObj: any; + mode: string; + showSpinner: boolean; + showDialog1: boolean; + queryObj: {}; + validateResponseString: string; + showVerifySpinner: boolean; + Groups: {}[] = []; + isDefaultSql: boolean; + showConfirmButton: boolean; + + + constructor(private _formFieldsService: FormFieldsService, public dialog: MatDialog, private _snackBar: MatSnackBar) { + this.formFieldsListObj = []; + this.postMoveUpwrdObj = {}; + this.postDownwardObj = {}; + this.showDialog = false; + this.showDefaultSQLOption = false; + this.closable = true; + this.predefinedValueList = []; + this.finalPOSTObj = {}; this.showSpinner = false; - this._formFieldsService.getFormFieldGroupsData(this.reportId1) - .subscribe((responseGroupsData) => { - this.showSpinner = true; - this.Groups = JSON.parse(responseGroupsData["formFieldGroupsJSON"]); - this.showSpinner = false; - }); - }); - } - - - isLast( n : number) - { - if(n == this.formFieldsListObj.length-1) - { - return true; + this.showDialog1 = false; + this.queryObj = {}; + this.showVerifySpinner = false; + this.Groups = []; + this.isDefaultSql = false; } - else - { - return false; + + ngOnInit() { + this._formFieldsService.getListOfFormFields() + .subscribe((responseFormFields) => { + for (let m = 0; m < responseFormFields.length; m++) { + responseFormFields[m]['orderSeq'] = m + 1; + this.formFieldsListObj.push(responseFormFields[m]); + } + + this._formFieldsService.getFormFieldGroupsData(this.reportId1) + .subscribe((responseGroupsData) => { + this.Groups = JSON.parse(responseGroupsData['formFieldGroupsJSON']); + }); + }); } - } - isFirst( n : number) - { - if(n == 0) - { - return true; + + isLast(n: number) { + if (n == this.formFieldsListObj.length - 1) { + return true; + } else { + return false; + } } - else - { - return false; + + isFirst(n: number) { + if (n == 0) { + return true; + } else { + return false; + } } - } - - - moveUpward( n : number) - { - this.showSpinner = true; - - this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]["id"]) - .subscribe((responseGetFormFieldn) => { - this.postMoveUpwrdObj = responseGetFormFieldn; - - this._formFieldsService.getFormFieldData(this.formFieldsListObj[n-1]["id"]) - .subscribe((responseGetFormFieldnmin1) => { - this.postDownwardObj = responseGetFormFieldnmin1; - - this.orderSeqOfDown = this.postMoveUpwrdObj["orderSeq"]; - this.orderSeqOfUp = this.postDownwardObj["orderSeq"]; - - this.postMoveUpwrdObj["orderSeq"] = this.orderSeqOfUp; - this.postDownwardObj["orderSeq"] = this.orderSeqOfDown; - - console.log(this.postDownwardObj); - console.log(this.postMoveUpwrdObj); - this.postMoveUpwrdObj["lastUpdatedFieldId"] = this.postDownwardObj["fieldId"]; - this.postDownwardObj["lastUpdatedFieldId"] = this.postMoveUpwrdObj["fieldId"]; - - this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1) - .subscribe((responsePostn) => { - if(responsePostn["message"]) - { - this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1) - .subscribe((responsePostnmin1) => { - if(responsePostnmin1["message"]) - { - - this.formFieldsListObj = []; - this._formFieldsService.getListOfFormFields() - .subscribe((finalListResponse) => { - for(let k=0; k<finalListResponse.length; k++) - { - // this.formFieldsListObj.push(finalListResponse[k]); - for(let m=0; m<finalListResponse.length; m++) - { - if(finalListResponse[m]["orderSeq"] == k+1) - { - this.formFieldsListObj.push(finalListResponse[m]); - } - } - } - this.showSpinner = false; - }); - } - }); - } - }); - }); - }); - - - - } - - moveDownward( n : number) - { - this.showSpinner = true; - - this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]["id"]) - .subscribe((responseGetFormFieldn) => { - this.postMoveUpwrdObj = responseGetFormFieldn; - - this._formFieldsService.getFormFieldData(this.formFieldsListObj[n+1]["id"]) - .subscribe((responseGetFormFieldnmin1) => { - this.postDownwardObj = responseGetFormFieldnmin1; - - this.orderSeqOfDown = this.postMoveUpwrdObj["orderSeq"]; - this.orderSeqOfUp = this.postDownwardObj["orderSeq"]; - - this.postMoveUpwrdObj["orderSeq"] = this.orderSeqOfUp; - this.postDownwardObj["orderSeq"] = this.orderSeqOfDown; - - console.log(this.postDownwardObj); - console.log(this.postMoveUpwrdObj); - - this.postMoveUpwrdObj["lastUpdatedFieldId"] = this.postDownwardObj["fieldId"]; - this.postDownwardObj["lastUpdatedFieldId"] = this.postMoveUpwrdObj["fieldId"]; - - this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1) - .subscribe((responsePostn) => { - if(responsePostn["message"]) - { - this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1) - .subscribe((responsePostnmin1) => { - if(responsePostnmin1["message"]) - { - - this.formFieldsListObj = []; - this._formFieldsService.getListOfFormFields() - .subscribe((finalListResponse) => { - for(let k=0; k<finalListResponse.length; k++) - { - // this.formFieldsListObj.push(finalListResponse[k]); - for(let m=0; m<finalListResponse.length; m++) - { - if(finalListResponse[m]["orderSeq"] == k+1) - { - this.formFieldsListObj.push(finalListResponse[m]); - } - } - } - this.showSpinner = false; - }); - } - }); - } - + moveUpward(n: number) { + this.showSpinner = true; + + this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]['id']) + .subscribe((responseGetFormFieldn) => { + this.postMoveUpwrdObj = responseGetFormFieldn; + + this._formFieldsService.getFormFieldData(this.formFieldsListObj[n - 1]['id']) + .subscribe((responseGetFormFieldnmin1) => { + this.postDownwardObj = responseGetFormFieldnmin1; + + this.orderSeqOfDown = this.postMoveUpwrdObj['orderSeq']; + this.orderSeqOfUp = this.postDownwardObj['orderSeq']; + + this.postMoveUpwrdObj['orderSeq'] = this.orderSeqOfUp; + this.postDownwardObj['orderSeq'] = this.orderSeqOfDown; + + console.log(this.postDownwardObj); + console.log(this.postMoveUpwrdObj); + this.postMoveUpwrdObj['lastUpdatedFieldId'] = this.postDownwardObj['fieldId']; + this.postDownwardObj['lastUpdatedFieldId'] = this.postMoveUpwrdObj['fieldId']; + + this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1) + .subscribe((responsePostn) => { + if (responsePostn['message']) { + this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1) + .subscribe((responsePostnmin1) => { + if (responsePostnmin1['message']) { + + this.formFieldsListObj = []; + this._formFieldsService.getListOfFormFields() + .subscribe((finalListResponse) => { + for (let k = 0; k < finalListResponse.length; k++) { + // this.formFieldsListObj.push(finalListResponse[k]); + for (let m = 0; m < finalListResponse.length; m++) { + if (finalListResponse[m]['orderSeq'] == k + 1) { + this.formFieldsListObj.push(finalListResponse[m]); + } + } + } + this.showSpinner = false; + }); + } + }); + } + }); + }); + }); + + + } + + moveDownward(n: number) { + this.showSpinner = true; + + this._formFieldsService.getFormFieldData(this.formFieldsListObj[n]['id']) + .subscribe((responseGetFormFieldn) => { + this.postMoveUpwrdObj = responseGetFormFieldn; + + this._formFieldsService.getFormFieldData(this.formFieldsListObj[n + 1]['id']) + .subscribe((responseGetFormFieldnmin1) => { + this.postDownwardObj = responseGetFormFieldnmin1; + + this.orderSeqOfDown = this.postMoveUpwrdObj['orderSeq']; + this.orderSeqOfUp = this.postDownwardObj['orderSeq']; + + this.postMoveUpwrdObj['orderSeq'] = this.orderSeqOfUp; + this.postDownwardObj['orderSeq'] = this.orderSeqOfDown; + + console.log(this.postDownwardObj); + console.log(this.postMoveUpwrdObj); + + this.postMoveUpwrdObj['lastUpdatedFieldId'] = this.postDownwardObj['fieldId']; + this.postDownwardObj['lastUpdatedFieldId'] = this.postMoveUpwrdObj['fieldId']; + + this._formFieldsService.postFormFieldData(this.postDownwardObj, this.reportId1) + .subscribe((responsePostn) => { + if (responsePostn['message']) { + this._formFieldsService.postFormFieldData(this.postMoveUpwrdObj, this.reportId1) + .subscribe((responsePostnmin1) => { + if (responsePostnmin1['message']) { + + this.formFieldsListObj = []; + this._formFieldsService.getListOfFormFields() + .subscribe((finalListResponse) => { + for (let k = 0; k < finalListResponse.length; k++) { + // this.formFieldsListObj.push(finalListResponse[k]); + for (let m = 0; m < finalListResponse.length; m++) { + if (finalListResponse[m]['orderSeq'] == k + 1) { + this.formFieldsListObj.push(finalListResponse[m]); + } + } + } + this.showSpinner = false; + }); + } + }); + } + + }); - }); + }); }); - } + } + + ngDoCheck() { + if (this.sqlAsDefaultValue) { + this.showDefaultSQLOption = true; + } else { + this.showDefaultSQLOption = false; + } - ngDoCheck() - { - if(this.sqlAsDefaultValue) - { - this.showDefaultSQLOption = true; } - else - { - this.showDefaultSQLOption = false; + + setDisplayMode(displayMode: string) { } - - } - - setDisplayMode(displayMode : string) - { - } - - edit(id : string) - { - this._formFieldsService.getFormFieldData(id) - .subscribe((responseFormFieldData) => { - this.validationType = responseFormFieldData["validationType"]; - - if(responseFormFieldData["visible"] === true) - { - this.visible = "YES"; - } - else - { - this.visible = "NO"; - } - - this.orderSeq = responseFormFieldData["orderSeq"]; - this.message = responseFormFieldData["message"]; - this.groupFormField = responseFormFieldData["groupFormField"]; - this.fieldType = responseFormFieldData["fieldType"]; - this.fieldSQL = responseFormFieldData["fieldSQL"]; - this.fieldName = responseFormFieldData["fieldName"]; - this.fieldId = responseFormFieldData["fieldId"]; - this.fieldDefaultSQL = responseFormFieldData["fieldDefaultSQL"]; - this.errorStackTrace = responseFormFieldData["errorStackTrace"]; - this.errorMessage = responseFormFieldData["errorMessage"]; - this.defaultValue = responseFormFieldData["defaultValue"] ; - if(this.fieldDefaultSQL != null || this.fieldDefaultSQL != "") - this.isDefaultSql = true; - else - this.isDefaultSql = false; - - if(this.defaultValue == null || this.defaultValue == "") - this.isDefaultSql = true; - else - this.isDefaultSql = false; - - if ((this.fieldDefaultSQL == null || this.fieldDefaultSQL == "") && (this.defaultValue == null || this.defaultValue == "")) - this.isDefaultSql = false; - - if(responseFormFieldData["predefinedValueList"] == null) - { + + editGroup(group: any) { + this.openEditDialog(group); + } + + edit(id: string) { + this._formFieldsService.getFormFieldData(id) + .subscribe((responseFormFieldData) => { + this.validationType = responseFormFieldData['validationType']; + + if (responseFormFieldData['visible'] === true) { + this.visible = 'YES'; + } else { + this.visible = 'NO'; + } + + this.orderSeq = responseFormFieldData['orderSeq']; + this.message = responseFormFieldData['message']; + this.groupFormField = responseFormFieldData['groupFormField']; + this.fieldType = responseFormFieldData['fieldType']; + this.fieldSQL = responseFormFieldData['fieldSQL']; + this.fieldName = responseFormFieldData['fieldName']; + this.fieldId = responseFormFieldData['fieldId']; + this.fieldDefaultSQL = responseFormFieldData['fieldDefaultSQL']; + this.errorStackTrace = responseFormFieldData['errorStackTrace']; + this.errorMessage = responseFormFieldData['errorMessage']; + this.defaultValue = responseFormFieldData['defaultValue']; + if (this.fieldDefaultSQL != null || this.fieldDefaultSQL != '') { + this.isDefaultSql = true; + } else { + this.isDefaultSql = false; + } + + if (this.defaultValue == null || this.defaultValue == '') { + this.isDefaultSql = true; + } else { + this.isDefaultSql = false; + } + + if ((this.fieldDefaultSQL == null || this.fieldDefaultSQL == '') && (this.defaultValue == null || this.defaultValue == '')) { + this.isDefaultSql = false; + } + + if (responseFormFieldData['predefinedValueList'] == null) { + this.predefinedValueList = []; + } else { + this.predefinedValueList = responseFormFieldData['predefinedValueList']; + } + + this.showDialog = true; + this.closable = true; + this.mode = 'Edit'; + }); + + } + + add() { + this.showDialog = true; + this.closable = true; + this.validationType = ''; + this.visible = 'YES'; + this.message = ''; + this.groupFormField = false; + this.fieldType = ''; + this.fieldSQL = ''; + this.fieldName = ''; + this.fieldId = ''; + this.fieldDefaultSQL = ''; + this.errorStackTrace = ''; + this.errorMessage = ''; + this.isDefaultSql = false; this.predefinedValueList = []; - } - else - { - this.predefinedValueList = responseFormFieldData["predefinedValueList"]; - } - - this.showDialog = true; - this.closable = true; - this.mode = "Edit"; - }); - - } - - add() - { - this.showDialog = true; - this.closable = true; - this.validationType = ""; - this.visible = "YES"; - this.message = ""; - this.groupFormField = false; - this.fieldType = ""; - this.fieldSQL = ""; - this.fieldName = ""; - this.fieldId = ""; - this.fieldDefaultSQL = ""; - this.errorStackTrace = ""; - this.errorMessage = ""; - this.isDefaultSql = false; - this.predefinedValueList = []; - this.defaultValue=""; - - this.showDialog = true; - this.closable = true; - - this.mode = "Add"; - - } - - close() { - this.showDialog = !this.showDialog; - this.closable = false; - - } - - closeValidateModal() - { - this.showDialog1 = !this.showDialog1; - this.showVerifySpinner = false; - } - - addToList( attrib : string) - { - this.predefinedValueList.push( - { - "id" : attrib, - "name" : attrib, - "selected" : false - }); - } - - deleteFromList(attrib : string) - { - - for(let k=0; k<this.predefinedValueList.length; k++) - { - if(this.predefinedValueList[k]["id"] == attrib) - { - this.predefinedValueList.splice(k, 1); - } + this.defaultValue = ''; + + this.showDialog = true; + this.closable = true; + + this.mode = 'Add'; + + } + + close() { + this.showDialog = !this.showDialog; + this.closable = false; + } - } - - - save() - { - this.showSpinner = true; - this.showDialog = false; - this.finalPOSTObj["validationType"] = this.validationType; - - if(this.visible == "YES") - { - this.finalPOSTObj["visible"] = true; - } - else - { - this.finalPOSTObj["visible"] = false; - } - - this.finalPOSTObj["orderSeq"] = this.orderSeq; - this.finalPOSTObj["message"] = this.message; - this.finalPOSTObj["groupFormField"] = this.groupFormField; - this.finalPOSTObj["fieldType"] = this.fieldType; - this.finalPOSTObj["fieldSQL"] = this.fieldSQL; - this.finalPOSTObj["fieldName"] = this.fieldName; - this.finalPOSTObj["fieldId"] = this.fieldId; - - this.finalPOSTObj["errorStackTrace"] = this.errorStackTrace; - this.finalPOSTObj["errorMessage"] = this.errorMessage; - this.finalPOSTObj["lastUpdatedFieldId"] = this.fieldId; - - this.finalPOSTObj["fieldDefaultSQL"] = this.fieldDefaultSQL; - - this.finalPOSTObj["defaultValue"] = this.defaultValue; - - if(this.fieldDefaultSQL != "" && this.fieldDefaultSQL != null) - { - this.finalPOSTObj["defaultValue"] = ""; - } - - this.finalPOSTObj["predefinedValueList"] = this.predefinedValueList; - - if(this.mode == "Edit") - { - this._formFieldsService.postFormFieldData(this.finalPOSTObj, this.reportId1) - .subscribe((responsePost) => { - if(responsePost["message"]) - { - this._formFieldsService.getListOfFormFields() - .subscribe((responseFormFields) => { - this.formFieldsListObj = []; - let m=0; - while(responseFormFields[m]) + + closeValidateModal() { + this.showDialog1 = !this.showDialog1; + this.showVerifySpinner = false; + } + + addToList(attrib: string) { + this.predefinedValueList.push( { - this.formFieldsListObj.push(responseFormFields[m]); - m++; + 'id': attrib, + 'name': attrib, + 'selected': false + }); + } + + deleteFromList(attrib: string) { + + for (let k = 0; k < this.predefinedValueList.length; k++) { + if (this.predefinedValueList[k]['id'] == attrib) { + this.predefinedValueList.splice(k, 1); } + } + } + + + save() { + this.showSpinner = true; + this.showDialog = false; + this.finalPOSTObj['validationType'] = this.validationType; + + if (this.visible == 'YES') { + this.finalPOSTObj['visible'] = true; + } else { + this.finalPOSTObj['visible'] = false; + } + + this.finalPOSTObj['orderSeq'] = this.orderSeq; + this.finalPOSTObj['message'] = this.message; + this.finalPOSTObj['groupFormField'] = this.groupFormField; + this.finalPOSTObj['fieldType'] = this.fieldType; + this.finalPOSTObj['fieldSQL'] = this.fieldSQL; + this.finalPOSTObj['fieldName'] = this.fieldName; + this.finalPOSTObj['fieldId'] = this.fieldId; + + this.finalPOSTObj['errorStackTrace'] = this.errorStackTrace; + this.finalPOSTObj['errorMessage'] = this.errorMessage; + this.finalPOSTObj['lastUpdatedFieldId'] = this.fieldId; + + this.finalPOSTObj['fieldDefaultSQL'] = this.fieldDefaultSQL; + + this.finalPOSTObj['defaultValue'] = this.defaultValue; + + if (this.fieldDefaultSQL != '' && this.fieldDefaultSQL != null) { + this.finalPOSTObj['defaultValue'] = ''; + } + + this.finalPOSTObj['predefinedValueList'] = this.predefinedValueList; + + if (this.mode == 'Edit') { + this._formFieldsService.postFormFieldData(this.finalPOSTObj, this.reportId1) + .subscribe((responsePost) => { + if (responsePost['message']) { + this._formFieldsService.getListOfFormFields() + .subscribe((responseFormFields) => { + this.formFieldsListObj = []; + let m = 0; + while (responseFormFields[m]) { + this.formFieldsListObj.push(responseFormFields[m]); + m++; + } + + + this.showSpinner = false; - - this.showSpinner = false; - - }); - + }); + + } + }); + } else { + this._formFieldsService.addFormFieldData(this.finalPOSTObj, this.reportId1) + .subscribe((responsePost) => { + if (responsePost['message']) { + this._formFieldsService.getListOfFormFields() + .subscribe((responseFormFields) => { + this.formFieldsListObj = []; + let m = 0; + while (responseFormFields[m]) { + this.formFieldsListObj.push(responseFormFields[m]); + m++; + } + + this.showSpinner = false; + + }); + } + }); } - }); } - else - { - this._formFieldsService.addFormFieldData(this.finalPOSTObj, this.reportId1) - .subscribe((responsePost) => { - if(responsePost["message"]) - { - this._formFieldsService.getListOfFormFields() - .subscribe((responseFormFields) => { - this.formFieldsListObj = []; - let m=0; - while(responseFormFields[m]) - { - this.formFieldsListObj.push(responseFormFields[m]); - m++; - } - this.showSpinner = false; - - }); + delete(id: string) { + this.showSpinner = true; + this._formFieldsService.deleteFormField(id) + .subscribe((responseDeleted) => { + if (responseDeleted['message'] == 'Formfield Deleted') { + this._formFieldsService.getListOfFormFields() + .subscribe((responseFormFields) => { + this.formFieldsListObj = []; + let m = 0; + while (responseFormFields[m]) { + this.formFieldsListObj.push(responseFormFields[m]); + m++; + } + + this.showSpinner = false; + + }); + } + }); + } + + verify(SQLType: string) { + this.showVerifySpinner = true; + this.showDialog1 = true; + if (SQLType == 'Default') { + this.queryObj = { + query: this.fieldDefaultSQL + }; + this._formFieldsService.verifySQL(this.queryObj) + .subscribe((responseDefaultSQL) => { + this.validateResponseString = responseDefaultSQL['data']['elements']; + this.showVerifySpinner = false; + }); + } else { + this.queryObj = { + query: this.fieldSQL + }; + this._formFieldsService.verifySQL(this.queryObj) + .subscribe((responseSQL) => { + this.validateResponseString = responseSQL['data']['elements']; + this.showVerifySpinner = false; + }); } - }); + } - } - - delete( id : string) - { - this.showSpinner = true; - this._formFieldsService.deleteFormField(id) - .subscribe((responseDeleted) => { - if(responseDeleted["message"] == "Formfield Deleted") - { - this._formFieldsService.getListOfFormFields() - .subscribe((responseFormFields) => { - this.formFieldsListObj = []; - let m=0; - while(responseFormFields[m]) - { - this.formFieldsListObj.push(responseFormFields[m]); - m++; + + deleteFromGroup(formFieldId: String) { + for (let k = 0; k < this.Groups.length; k++) { + let element = this.Groups[k]; + for (let l = 0; l < element["formFieldList"].length; l++) { + if (element['formFieldList'][l]['id'] == formFieldId) { + this.Groups[k]['formFieldList'].splice(l, 1); + } } + } + } - this.showSpinner = false; - - }); + deleteGroup(groupName: string) { + for (let k = 0; k < this.Groups.length; k++) { + if (this.Groups[k]['name'] == groupName) { + this.Groups.splice(k, 1); + } } - }) - } - - verify( SQLType : string) - { - this.showVerifySpinner = true; - this.showDialog1 = true; - if(SQLType == "Default") - { - this.queryObj = { - query : this.fieldDefaultSQL - }; - this._formFieldsService.verifySQL(this.queryObj) - .subscribe((responseDefaultSQL) => { - this.validateResponseString = responseDefaultSQL["data"]["elements"]; - this.showVerifySpinner = false; - }); } - else - { - this.queryObj = { - query : this.fieldSQL - }; - this._formFieldsService.verifySQL(this.queryObj) - .subscribe((responseSQL) => { - this.validateResponseString = responseSQL["data"]["elements"]; - this.showVerifySpinner = false; - }); + + createGroup() { + this.openDialog(); } - - } - - deleteFromGroup(formFieldId : String) - { - for(let k=0; k<this.Groups.length; k++) - { - let element = this.Groups[k]; - for(let l=0; l<element["formFieldList"].length; l++) - { - if(element["formFieldList"][l]["id"] == formFieldId) - { - this.Groups[k]["formFieldList"].splice(l, 1); + + openDialog() { + const dialogRef = this.dialog.open(DialogOverviewExampleDialog, { + width: '400px', + height: '600px', + data: this.formFieldsListObj, + }); + + dialogRef.afterClosed().subscribe(result => { + + let groupAlreadyExists = false; + if (this.Groups == null || this.Groups == undefined) { + this.Groups = []; + } + for (let k = 0; k < this.Groups.length; k++) { + if (this.Groups[k]['name'] == result['name']) { + groupAlreadyExists = true; + } + } + + + if (!groupAlreadyExists) { + let UpdatedResult = result; + for (let i = 0; i < result["formFieldList"].length; i++) { + let formFieldId = result['formFieldList'][i]; + let j = 0; + while (this.formFieldsListObj[j]) { + if (this.formFieldsListObj[j]['id'] == formFieldId) { + UpdatedResult['formFieldList'][i] = this.formFieldsListObj[j]; + } + j++; + } + + } + if (this.Groups !== null || this.Groups !== undefined) { + this.Groups.push(UpdatedResult); + } else { + this.Groups = []; + this.Groups.push(UpdatedResult); + } + + } else { + this.openSnackBar('Group Already Exists.', 'Try using another name!'); + } + + + }); + } + + + openEditDialog(groupInfo: any) { + const multiSelectArray = []; + for (let arr = 0; arr < groupInfo['formFieldList'].length; arr++) { + multiSelectArray.push(groupInfo['formFieldList'][arr]['id']); } - } + let editGroupInfo = {}; + editGroupInfo['formFieldList'] = multiSelectArray; + editGroupInfo['name'] = groupInfo['name']; + const dialogRef = this.dialog.open(EditGroupDialog, { + width: '400px', + height: '600px', + data: { + formFieldsListObj: this.formFieldsListObj, + editGroupInfo: editGroupInfo + } + }); + + dialogRef.afterClosed().subscribe(result => { + for (let k = 0; k < this.Groups.length; k++) { + if (this.Groups[k]['name'] == editGroupInfo['name']) { + let UpdatedResult = editGroupInfo; + for (let i = 0; i < editGroupInfo["formFieldList"].length; i++) { + let formFieldId = editGroupInfo['formFieldList'][i]; + let j = 0; + while (this.formFieldsListObj[j]) { + if (this.formFieldsListObj[j]['id'] == formFieldId) { + UpdatedResult['formFieldList'][i] = this.formFieldsListObj[j]; + } + j++; + } + + } + + this.Groups[k]['formFieldList'] = UpdatedResult['formFieldList']; + } + } + }); } - } - - deleteGroup(groupName : string) - { - for(let k=0; k<this.Groups.length; k++) - { - if(this.Groups[k]["name"] == groupName) - { - this.Groups.splice(k, 1); - } + + + openSnackBar(message: string, action: string) { + this._snackBar.open(message, action, { + duration: 5000, + }); } - } - - createGroup() - { - this.openDialog(); - } - - openDialog(){ - const dialogRef = this.dialog.open(DialogOverviewExampleDialog, { - width: '400px', - height: '600px', - data: this.formFieldsListObj - }); - - dialogRef.afterClosed().subscribe(result => { - - let groupAlreadyExists = false; - if(this.Groups == null || this.Groups == undefined) - { - this.Groups = new Array(); - } - for(let k=0; k<this.Groups.length; k++) - { - if(this.Groups[k]["name"] == result["name"]) - { - groupAlreadyExists = true; - } - } - - - if(!groupAlreadyExists) - { - let UpdatedResult = result; - for(let i=0; i<result["formFieldList"].length; i++) - { - let formFieldId = result["formFieldList"][i]; - let j=0; - while(this.formFieldsListObj[j]) - { - if(this.formFieldsListObj[j]["id"] == formFieldId) - { - UpdatedResult["formFieldList"][i] = this.formFieldsListObj[j]; - } - j++; - } - } - if(this.Groups !== null || this.Groups!== undefined) - { - this.Groups.push(UpdatedResult); - } - else - { - this.Groups = new Array(); - this.Groups.push(UpdatedResult); - } - - } - else - { - this.openSnackBar("Group Already Exists.","Try using another name!"); - } - - - }); - } - - openSnackBar(message: string, action: string) { - this._snackBar.open(message, action, { - duration: 5000, - }); - } - - saveFormFieldGroups() - { - let formFieldGroupsPostObj = - { - reportId : this.reportId1, - formFieldGroupsJSON : JSON.stringify(this.Groups) - }; - - this._formFieldsService.postFormFieldGroupsData(formFieldGroupsPostObj) - .subscribe((responsePost) => { - this.openSnackBar("Successfully Saved!",""); - }); - } + saveFormFieldGroups() { + let formFieldGroupsPostObj = + { + reportId: this.reportId1, + formFieldGroupsJSON: JSON.stringify(this.Groups) + }; + + this._formFieldsService.postFormFieldGroupsData(formFieldGroupsPostObj) + .subscribe((responsePost) => { + this.openSnackBar('Successfully Saved!', ''); + }); + } } @Component({ - selector: 'app-create-group', - templateUrl: './create-group.component.html', + selector: 'app-create-group', + templateUrl: './create-group.component.html', }) export class DialogOverviewExampleDialog { - createGroupObj : any = {}; - constructor( - public dialogRef: MatDialogRef<DialogOverviewExampleDialog>, - @Inject(MAT_DIALOG_DATA) public data: DialogData) { + createGroupObj: any = {}; + + constructor( + public dialogRef: MatDialogRef<DialogOverviewExampleDialog>, + @Inject(MAT_DIALOG_DATA) public data: DialogData) { + } + + onNoClick(): void { + this.dialogRef.close(); + } + +} + + +@Component({ + selector: 'app-edit-group', + templateUrl: './edit-group.component.html', +}) +export class EditGroupDialog { + @Input('mode') mode: string; + editGroupInfo: any = {}; + + constructor( + public dialogRef: MatDialogRef<EditGroupDialog>, + @Inject(MAT_DIALOG_DATA) public data: DialogData) { } - onNoClick() : void { - this.dialogRef.close(); - } + onNoClick(): void { + this.dialogRef.close(); + } } + diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html index 3bf0b768..df69db51 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.html @@ -14,12 +14,21 @@ <th>User Name</th> <th>Log Time</th> <th>Action</th> + <th>TimeTaken</th> </tr> <tr *ngFor="let item of logDataList; let i = index;"> <td><label>{{i+1}}</label></td> <td><label>{{item.userName}}</label></td> <td><label>{{item.logTime}}</label></td> - <td><label>{{item.action}}</label></td> + <td> + <div *ngIf="item.action.split('||')[0] == 'linkToReport'"> + <a (click)="linkToReport(item.action.split('||')[1], item.action.split('||')[2]+item.action.split('||')[4])" [routerLink]="">{{item.action.split('||')[3]}}</a> + </div> + <div *ngIf="item.action.split('||')[0] != 'linkToReport'"><label>{{item.action}}</label></div> + + </td> + <td><label>{{item.timeTaken}}</label></td> + </tr> </table> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts index e2b08a4f..d87288af 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.spec.ts @@ -7,6 +7,7 @@ import { MockBackend } from '@angular/http/testing'; import { BaseRequestOptions, Http } from '@angular/http'; import 'rxjs/add/observable/of'; import { Observable } from 'rxjs/Observable'; +import { RouterTestingModule } from '@angular/router/testing'; describe('LogComponent', () => { let component: LogComponent; @@ -16,7 +17,7 @@ describe('LogComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ declarations: [ LogComponent ], - imports: [HttpClientTestingModule], + imports: [HttpClientTestingModule, RouterTestingModule], // providers:[LogService,MockBackend,BaseRequestOptions,{ // porvide:Http,useFactory:(backend:MockBackend,defaultOptions:BaseRequestOptions)=>{ // return new Http(backend,defaultOptions); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts index a90a1f8e..ff031a5a 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/log/log.component.ts @@ -1,5 +1,7 @@ import { Component, OnInit, Input } from '@angular/core'; import { LogService } from './log.service'; +import { environment } from '../../../../../../environments/environment'; +import { Router } from '@angular/router'; @Component({ selector: 'app-log', @@ -8,42 +10,47 @@ import { LogService } from './log.service'; }) export class LogComponent implements OnInit { - @Input("reportId") reportId1 : string; - @Input("reportType") reportType : string; + @Input("reportId") repId: string; + @Input("reportType") reportType: string; - showSpinner : boolean; - logDataList : {}[]; - stepNo : string; + showSpinner: boolean; + logDataList: {}[]; + finalLogDataList: {}[]; + stepNo: string; + canReportRun: boolean; - - constructor(private _logService : LogService) { + + constructor(private _logService: LogService, private _router: Router) { this.showSpinner = false; this.logDataList = new Array(); - } + this.finalLogDataList = new Array(); + this.canReportRun = false; + } ngOnInit() { this.showSpinner = true; - if(this.reportType === "Dashboard") - { - this.stepNo= "3"; + if (this.reportType === "Dashboard") { + this.stepNo = "3"; } - else - { - this.stepNo= "7"; + else { + this.stepNo = "7"; } - this._logService.getLogData(this.reportId1) + this._logService.getLogData(this.repId) .subscribe((responseLogData) => { - this.showSpinner = true; - this.logDataList = responseLogData; - - console.log(this.logDataList); - this.showSpinner = false; }); } + linkToReport(reportID: string, queryParameters: string) { + if(queryParameters != '' && queryParameters.includes('groupSelectValue') && queryParameters.substring(queryParameters.indexOf('&groupSelectValue=')+ ('&groupSelectValue=').length,queryParameters.indexOf('&fromReportLog=')).length>0){ + this._router.navigate(['v2/run', reportID, queryParameters,queryParameters.substring(queryParameters.indexOf('&groupSelectValue=')+ ('&groupSelectValue=').length,queryParameters.indexOf('&fromReportLog='))]); + }else{ + this._router.navigate(['v2/run', reportID, queryParameters]); + } + } + } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.css deleted file mode 100644 index a26636f9..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.css +++ /dev/null @@ -1,3218 +0,0 @@ -.wrapper { - display: grid; - grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; - overflow: auto; -} -.wrapper > div { - border-radius: 5px; - padding: 0.5em; -} - -mat-button-toggle-group{ - width: 800px; - } - - .stdForm{ - margin-left: 20px; - line-height: 0.5; - } - - .fieldWidth{ - width: 50%; - } - - .labelWidth{ - font-weight: normal; - width: 200px; - } - - mat-select{ - border: 1px solid #d2d2d2; - border-radius: 6px; - } - - :host ::ng-deep .mat-select-value{ - padding: 8px; - font-size: 15px; - padding-left: 15px; - } - :host ::ng-deep .mat-form-field-underline { - display: none; - } - - :host ::ng-deep .mat-form-field-infix{ - padding: 0; - border-top: 0; - } - :host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-wrapper { - padding-bottom: 0; - } - - :host ::ng-deep .mat-form-field-appearance-legacy .mat-form-field-infix { - padding: 0; - } - - .mat-form-field{ - width: 200px; - } - - label{ - size: 70px; - padding-right: 15px; - } - - input { - width: 200px; - height: 20px; - } - - .Heading{ - font-size: 45px; - } - - .field-group { - position: relative; - display: block; - } - - label + .field-group, label + .input-append, label + .row, label + .row-nowrap, label + .form-row { - margin-top: 5px; - } - - - select{ - display: block; - width: 200px; - padding: 15px; - background-color: #e6e6e61a - } - - .checkbox .skin { - background-color: #fff; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - width: 24px; - position: absolute; - left: 0; - top: 0; - } - html { - overflow-y: scroll; - -webkit-overflow-scrolling: touch; - height: 100%; - position: relative; } - - h1, - h2, - h3, - h4, - h5, - p, - blockquote, - figure, - ol, - ul { - margin: 0; - padding: 0; } - - /* a:focus { - outline: thin dotted #191919; - } */ - sub, - .img-no-rwd { - max-width: inherit !important; } - - svg { - display: inline-block; } - - button, - input, - select, - textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; } - - ::-moz-focus-inner { - padding: 0; - border: 0; } - - button, - html input[type="button"], - input[type="reset"], - input[type="submit"] { - appearance: button; - cursor: pointer; } - - label, - select, - button, - input[type="button"], - input[type="reset"], - input[type="submit"], - input[type="radio"], - input[type="checkbox"] { - cursor: pointer; } - - input[type=search] { - -webkit-appearance: textfield; } - - input[type=search]::-webkit-search-cancel-button, - input[type=search]::-webkit-search-decoration { - -webkit-appearance: none; } - - - - select { - -moz-appearance: none; - -webkit-appearance: none; } - - small { - font-size: 1.6rem; } - - .container { - margin: 0 auto; - padding: 0; } - - input { - padding: 8px 15px 8px 15px; } - .field-group input.input-emphasized[type="search"] + .reset-field:after { - top: 14px; } - .field-group input.input-emphasized[type="search"] + .reset-field { - height: 46px; - top: 1px; } - - p, - h2, - h3 { - orphans: 3; - widows: 3; } - h2, - h3 { - page-break-after: avoid; } - - .mar-top-0 { - margin-top: 0px; } - - .mar-top-30 { - margin-top: 30px; } - - a:focus { - outline: thin dotted #191919; } - - h1, - h2, - h3, - h4, - h5, - h6 { - font-weight: normal; - text-rendering: optimizeLegibility; - margin: 0; - line-height: 1; } - - @media (max-width: 767px) { - h1, - h2, - h3, - h4, - h5, - h6, - .heading-page { - font-size: 2rem; - font-family: "Omnes-ECOMP-W02", Arial; - margin-bottom: 30px; } - .heading-major-section { - font-size: 2rem; - font-family: "Omnes-ECOMP-W02", Arial; - margin-bottom: 30px; } - .heading-sub-section { - font-size: 2rem; - font-family: "Omnes-ECOMP-W02", Arial; - margin-bottom: 20px; } - .heading-medium { - font-size: 2rem; - font-family: "Omnes-ECOMP-W02", Arial; - margin-bottom: 20px; } - .heading-medium-emphasis { - font-size: 2rem; - font-family: "Omnes-ECOMP-W02", Arial; - margin-bottom: 20px; } - .heading-small { - font-size: 1.6rem; - font-family: "Omnes-ECOMP-W02", Arial; - margin-bottom: 10px; } - .heading-small-emphasis { - font-size: 1.6rem; - font-family: "Omnes-ECOMP-W02-Medium", Arial; - margin-bottom: 5px; } - * + .heading-major-section { - margin-top: 30px; } - * + .heading-sub-section { - margin-top: 30px; } - * + .heading-group { - margin-top: 20px; } - * + .heading-medium { - margin-top: 20px; } - * + .heading-medium-emphasis { - margin-top: 20px; } - * + .heading-small { - margin-top: 20px; } - * + .heading-small-emphasis { - margin-top: 20px; } - * + .heading-micro { - margin-top: 10px; } } - - /* Standard Type styles */ - .zeromargin { - margin: 0 !important; } - - a { - color: #0568ae; - text-decoration: none; } - - a:hover, - a:focus { - text-decoration: underline; } - - a:active { - color: #0568ae; } - - .a-min { - font-size: 12px; } - - .a-small { - font-size: 14px; } - - .a-max { - font-size: 18px; } - - a.show-qualifier { - margin-right: 25px; - position: relative; } - - a.show-qualifier:after { - color: #333333; - display: inline-block; - white-space: pre !important; } - - a[href$="pdf"].show-qualifier:after, - a.show-qualifier.pdf:after { - content: " (PDF)"; } - - a[href$="psd"].show-qualifier:after, - a.show-qualifier.psd:after { - content: " (PSD)"; } - - .standalone-link { - display: flex; } - - /* 20px for the icon, 10px left of icon */ - .standalone-link.small { - font-size: 1.4rem; } - - .standalone-link.small i[class*="icon-primary-"] { - font-size: 16px; - top: 2px; } - - .standalone-link.large { - font-size: 1.8rem; } - - .standalone-link.large i[class*="icon-primary-"] { - font-size: 24px; - top: -1px; } - - p { - margin: 0 0 12px 0; - line-height: 2rem; } - - .p-small { - font-size: 1.4rem; - line-height: 1.8rem; } - - p + .p-small { - margin: 10px 0 0; } - - .p-micro { - font-size: 1.2rem; - line-height: 1.5rem; } - - p + .p-micro { - margin: 10px 0 0; } - - .p-max { - font-size: 1.8rem; } - - p + .p-max { - margin: 10px 0 0; } - - b, - strong { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - font-weight: normal; } - - i, - em { - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; } - - .strike { - text-decoration: line-through; } - - sup { - display: inline-block; - font-style: normal; - height: 1em; - position: relative; - vertical-align: text-top; - width: auto; } - - .text-legal { - color: #5a5a5a; - font-size: 1.1rem; - line-height: 1.5rem; - margin: 0 0 10px; } - - .text-legal.legal-module { - line-height: 1.3rem; - margin: 0 0 12px; } - - .text-legal b, - .text-legal strong { - font-weight: bold; } - - .text-legal a { - font-family: "Omnes-ECOMP-W02-Medium", Arial; } - - .text-left { - text-align: left !important; } - - .text-right { - text-align: right !important; } - - .text-center { - text-align: center !important; } - - .text-justified { - text-align: justify !important; } - - ul { - padding: 0; - margin: 0; - list-style: none; } - - ul.bullet, - ul.no-bullet, - ul.lower-alpha, - ul.lower-roman, - ol { - padding: 0; - margin: 12px 0 0 20px; } - - ul.bullet li, - ul.no-bullet li, - ul.lower-alpha li, - ul.lower-roman li, - ol li { - padding-left: 15px; - line-height: 20px; - position: relative; } - - ul.bullet li + li, - ul.no-bullet li + li, - ul.lower-alpha li + li, - ul.lower-roman li + li, - ol li + li { - margin-top: 12px; } - - ul.bullet > li:before, - ul.no-bullet > li:before, - ul.lower-alpha > li:before, - ul.lower-roman > li:before, - ol > li:before { - background-color: #333333; - border: 2px solid #333333; - border-radius: 100%; - content: " "; - display: block; - height: 1px; - left: 0; - position: absolute; - top: 8px; - width: 1px; } - - ul.bullet ul, - ul.no-bullet ul, - ul.lower-alpha ul, - ul.lower-roman ul, - ol ul, - ul.bullet ol, - ul.no-bullet ol, - ul.lower-alpha ol, - ul.lower-roman ol, - ol ol { - margin-top: 12px; } - - ul + *, - ol + * { - margin-top: 20px; } - - ul.no-bullet, - ul.lower-alpha, - ul.lower-roman { - margin: 0; } - - ul.no-bullet > li, - ul.lower-alpha > li, - ul.lower-roman > li { - padding-left: 0; } - - ul.no-bullet > li:before, - ul.lower-alpha > li:before, - ul.lower-roman > li:before { - display: none !important; } - - ol { - margin: 20px 0 0 32px; } - - ol li { - padding-left: 3px; } - - ol li:before { - display: none; } - - ol ol { - margin-left: 25px; } - - ol ul { - margin-left: -5px; } - - ul ul, - ul ol, - ol ol, - ol ul { - margin-top: 0; } - - ul.lower-roman { - list-style-type: lower-roman; - margin-top: 12px; - margin-left: 35px; - margin-bottom: 0; } - - ul.lower-alpha { - list-style-type: lower-alpha; - margin-top: 12px; - margin-left: 35px; - margin-bottom: 0; } - - dl { - display: table; - margin: 0 0 20px; - width: 100%; } - - dt, - dd { - display: table-cell; } - - .btn { - background-color: transparent; - background-clip: padding-box; - border: 1px solid transparent; - border-radius: 8px; - box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15); - cursor: pointer; - display: inline-block; - font-family: "Omnes-ECOMP-W02-Medium", Arial; - font-size: 0.5rem; - font-weight: normal; - line-height: 1; - margin: 0 7px 10px 0; - - - padding: 14px 19px 11px 18px; - position: relative; - text-align: center; - vertical-align: middle; - white-space: nowrap; - overflow: hidden; } - .btn:focus { - outline: 1px dotted #000; - outline-offset: -5px; } - .btn:last-child { - margin-right: 0; } - .btn::-moz-focus-inner { - padding: 0; - border: 0; } - .btn i[class*="icon-primary-"].icon-primary-small { - font-size: 24px; - top: -2px; } - .btn i[class*="icon-primary-"].icon-primary-medium { - font-size: 10px; - top: -2px; } - .btn i[class*="icon-primary-"].icon-primary-large { - font-size: 10px; - top: -2px; } - - a.btn { - vertical-align: middle; } - a.btn:hover { - text-decoration: none; } - - .field-group + .btn { - margin-left: 20px; } - - .btn-primary { - border-color: #ea7400 transparent #d16500; - background-color: #ea7400 transparent #d16500; - background: linear-gradient(to bottom, #ea7400 0%, #d16500 100%); - color: #ffffff; - font-family: "Omnes-ECOMP-W02", Arial; - font-weight: bold; } - .btn-primary:hover { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-primary:focus { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-primary:active { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - - .btn-arrow { - font-family: "Omnes-ECOMP-W02", Arial; - font-size: 1.6rem; - font-weight: normal; - background-color: transparent; - border: none; - padding: 5px 0 0; - top: -4px; - color: #333333; - position: relative; } - .btn-arrow:hover { - text-decoration: underline; } - .btn-arrow:hover .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:hover .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:hover .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:hover .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow:focus { - text-decoration: underline; - outline: 1px dotted #666; } - .btn-arrow:focus .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:focus .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:focus .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:focus .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow:active .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:active .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:active .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:active .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow .btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-arrow .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow::-moz-focus-inner { - padding: 0; - border: 0; } - .btn-arrow .btn { - border: 1px solid transparent; - border-radius: 100%; - height: 20px; - margin-bottom: 0; - margin-right: 7px; - max-width: 20px; - min-width: 20px; - padding: 0; - margin-top: -4px; - vertical-align: middle; - width: 36px; } - .btn-arrow .btn .icon-primary-left { - bottom: 0; - display: block; - height: 100%; - left: 0; - line-height: 0; - position: absolute; - right: 0; - text-indent: 0; - top: 0; } - .btn-arrow .btn .icon-primary-left:before { - position: absolute; - font-size: 1.6rem; - left: 1px; - top: 9px; } - .btn-arrow .btn .icon-primary-right { - bottom: 0; - display: block; - height: 100%; - left: 0; - line-height: 0; - position: absolute; - right: 0; - text-indent: 0; - top: 0; - color: #ffffff; } - .btn-arrow .btn .icon-primary-right:before { - position: absolute; - font-size: 1.6rem; - left: 17px; - top: 9px; } - .btn-arrow .btn.btn-primary .icon-primary-left { - color: #fff; } - .btn-arrow .btn.btn-primary .icon-primary-right { - color: #fff; } - .btn-arrow .btn.btn-alt .icon-primary-left { - color: #fff; } - .btn-arrow .btn.btn-alt .icon-primary-right { - color: #fff; } - .btn-arrow .btn.btn-secondary { - border: 1px solid #d2d2d2; } - .btn-arrow .btn.btn-secondary .icon-primary-left { - color: #0568ae; } - .btn-arrow .btn.btn-secondary .icon-primary-right { - color: #0568ae; } - .btn-arrow .btn.btn-small { - height: 10px; - - - width: 10px; - top: -1px; } - .btn-arrow .btn.btn-small .icon-primary-left:before { - font-size: 5px; - top: 4px; - left: 0; } - .btn-arrow .btn.btn-small .icon-primary-right:before { - font-size: 5px; - top: 4px; - left: 10px; } - .btn-arrow .btn.btn-large .icon-primary-left:before { - font-size: 112%; - top: 12px; - left: 23px; } - .btn-arrow .btn.btn-large .icon-primary-right:before { - font-size: 112%; - top: 12px; - left: 23px; } - - .btn-secondary { - border: 1px solid #d2d2d2; - background-color: #f2f2f2; - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - color: #0568ae; - box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.15); - padding: 14px 18px 11px 17px; } - .btn-secondary:hover { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-secondary:focus { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-secondary:active { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - - .btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - - .btn.disabled { - background-image: none; - background-color: #767676; - box-shadow: none; - cursor: not-allowed; - color: #ffffff; - border-color: transparent; - outline: 0 !important; } - .btn.disabled:hover { - color: #f2f2f2; - outline: none !important; } - .btn.disabled:focus { - color: #f2f2f2; - outline: none !important; } - - .btn-medium { - padding: 12px 19px 11px 18px; - font-size: 1.7rem; } - .btn-run { - padding: 12px 19px 11px 18px; - font-size: 15px;} - .btn-small { - font-size: 1.5rem; - border-radius: 8px; - margin-left: 600px; - font-size: 15px; - } - - .btn-auto-upload{ - font-size: 15px; - } - - .div-auto-upload{ - display: contents; - } - - .btn-fullwidth { - width: 100%; } - - button .btn-fill { - background-clip: padding-box; - border: 0; - border-radius: 4px; - bottom: 0; - display: block; - height: auto; - left: 0; - margin: 5px; - position: absolute; - right: 0; - top: 0; - width: auto; } - - button .btn-fill[style*="#fff"] { - border: 1px solid #d2d2d2; } - - - .btn-group[data-select-color="orange"] > .btn.active { - border-color: #ea7400; } - - .btn-group[data-select-color="blue"] > .btn.active { - border-color: #0568ae; } - - .btn-group[data-select-color="green"] > .btn.active { - border-color: #007a3e; } - - .btn-spinbutton-toggle.btn-group { - display: block !important; - height: 40px !important; - margin-top: 5px; - max-width: 138px; - min-width: 138px; - white-space: nowrap; } - - .btn-spinbutton-toggle .btn { - border-radius: 6px; - font-weight: normal; - -ms-flex: unset; - flex: unset; - height: 40px; - letter-spacing: normal; - min-width: auto; - padding: 3px 0 0; - text-align: center; - min-width: 46px; - width: 46px; } - - .btn-spinbutton-toggle .btn[data-max-value] { - border-bottom: 1px solid #d2d2d2; - border-top: 1px solid #d2d2d2; - box-shadow: 0 3px 2px -2px rgba(0, 0, 0, 0.08) inset; - background-color: #fff; - cursor: text; - font-family: "Omnes-ECOMP-W02", Arial; - font-size: 2rem; - font-weight: normal; - padding: 4px 0 0; - text-align: center; - min-width: 46px !important; - width: 46px; } - .btn-spinbutton-toggle .btn[data-max-value]:focus { - border-color: #0568ae; - outline: none; } - .btn-spinbutton-toggle .btn[data-max-value]:focus + .btn { - border-left: 1px solid #0568ae; - transition: border 0.3s linear 0s; } - - .btn-spinbutton-toggle .icon-primary-subtractminimize { - font-size: 30px !important; - color: #0568ae !important; } - - .btn-spinbutton-toggle .icon-primary-add-maximize { - font-size: 30px !important; - color: #0568ae !important; } - - .btn-spinbutton-toggle .btn[disabled].icon-primary-subtractminimize { - background-color: #d2d2d2; - color: #767676 !important; } - - .btn-spinbutton-toggle .btn[disabled].icon-primary-add-maximize { - background-color: #d2d2d2; - color: #767676 !important; } - - .btn-spinbutton-toggle input.btn[disabled] { - background-color: #d2d2d2; - color: #5a5a5a; - cursor: not-allowed; } - - .btn-group.btn-spinbutton-toggle .btn[disabled] + .btn[disabled] { - border-left: 1px solid #f0f0f0 !important; } - - .btn-group.btn-spinbutton-toggle .btn[data-max-value]:focus + .btn:not(:first-child) { - border-left: 1px solid #0568ae !important; } - - @media (max-width: 480px) { - .btn-group:not([data-select-color]) > .btn { - font-size: 1.3rem; - min-width: auto; } } - - button.close { - border: 0; - appearance: none; } - - .corner-button { - box-shadow: 0 -50px 0 0 #f2f2f2 inset; - height: 69px; - /*overflow: hidden;*/ - position: absolute; - right: -35px; - top: -35px; - transform: rotate(45deg); - width: 69px; } - - - .field-group input + .reset-field { - background: none; - height: 36px; - width: 45px; - display: none; - padding: 0; - position: absolute; - right: 0; - top: 0; - box-shadow: none; - border: none; - content: " "; } - - .field-group input[type="search"] + .reset-field, - .field-group input[type="search"] + .btn-search + .reset-field, - .tooltip-onclick input + .reset-field, - .tooltip-onclick input + .icon-primary-tooltip + .reset-field, - .tooltip-onclick textarea + .reset-field, - .tooltip-onclick textarea + .icon-primary-tooltip + .reset-field { - right: 45px; } - - .field-group input[type="search"] + .reset-field:after, - .field-group input[type="search"] + .btn-search + .reset-field:after, - - input:-ms-clear { - display: none; } - - input[type]::-webkit-inner-spin-button, - input[type]::-webkit-outer-spin-button { - -webkit-appearance: none; } - - input[type] { - -moz-appearance: textfield; } - - form { - margin: 0; } - - fieldset { - padding: 0; - margin: 0; - border: 0; } - - label, - legend { - display: inline-block; - /* font-size: 1.4rem; */ - font-family: "Omnes-ECOMP-W02-Medium", Arial; } - - legend { - display: block; } - - .error-msg { - display: none; } - - select, - textarea, - input { - border-radius: 6px; - color: #5a5a5a; - display: inline-block; - font-size: 1.6rem; - margin: 0px; - padding: 0 15px 0 15px; - vertical-align: middle; - line-height: normal; } - - select::-webkit-input-placeholder, - textarea::-webkit-input-placeholder, - input::-webkit-input-placeholder { - color: #5a5a5a; - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; - opacity: 1; } - - select:-moz-placeholder, - textarea:-moz-placeholder, - input:-moz-placeholder { - color: #5a5a5a; - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; - opacity: 1; } - - select::-moz-placeholder, - textarea::-moz-placeholder, - input::-moz-placeholder { - color: #5a5a5a; - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; - opacity: 1; } - - select:-ms-input-placeholder, - textarea:-ms-input-placeholder, - input:-ms-input-placeholder { - color: #5a5a5a; - font-family: "Omnes-ECOMP-W02-Italic", Arial; - transition: none; - opacity: 1; } - - select:placeholder, - textarea:placeholder, - input:placeholder { - color: #5a5a5a; - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; - opacity: 1; } - - select:last-child, - textarea:last-child, - input:last-child { - margin-right: 0; } - - input:not([type="button"]) { - height: 36px; } - - input.input-emphasized { - font-size: 1.8rem; - height: 48px; - padding: 13px 20px 13px; } - - input[type="search"]:focus { - padding-right: 88px; } - - input[type="search"] { - padding-right: 40px; - -webkit-appearance: none !important; } - - input[type="search"].input-emphasized { - padding-right: 45px; } - - .btn-search[class*="btn"] { - background-color: transparent; - background-position: 50% 50%; - background-size: 20px; - background-repeat: no-repeat; - border: none; - height: 100%; - margin-left: 0; - margin-top: 0; - min-width: 45px !important; - outline-offset: 0; - padding: 0 !important; - position: absolute; - right: 0; - top: 0; - border-radius: 0 5px 5px 0; - min-width: 44px; - width: 44px; } - - .input-emphasized + .btn-search[class*="btn"], - .input-emphasized + .reset-field + .btn-search[class*="btn"] { - background-size: 26px; - height: 46px; - top: 1px; - outline-offset: -3px; - margin-bottom: 0; - border-radius: 0 5px 5px 0; } - - input[type="search"].input-emphasized + .reset-field { - right: 45px !important; } - - - input[data-provide="datepicker"], - [data-provide="datepicker"]:-moz-placeholder, - [data-provide="datepicker"]:-ms-input-placeholder, - [data-provide="datepicker"]:-webkit-input-placeholder { - color: #0568ae !important; - opacity: 1; - filter: alpha(opacity=100); } - - input[disabled], - input[readonly], - select[disabled], - select[readonly], - textarea[disabled], - textarea[readonly], - i.icon-primary-calendar.disabled, - span.icon-primary-calendar.readonly { - cursor: not-allowed; - background-color: #f2f2f2; - box-shadow: none; } - - i.icon-primary-calendar.disabled input, - span.icon-primary-calendar.readonly input { - color: #959595 !important; } - - textarea { - display: block; - width: 800px; - - padding: 15px; } - - textarea.small { - line-height: 20px; } - - textarea + .reset-field { - display: none; } - - textarea::-webkit-input-placeholder { - line-height: .99; } - - textarea:-moz-placeholder { - line-height: .99; } - - textarea::-moz-placeholder { - line-height: .99; } - - textarea:-ms-input-placeholder { - line-height: .99; } - - textarea:placeholder { - line-height: .99; } - - textarea, - input { - background-color: #ffffff; - border: 1px solid #d2d2d2; - -webkit-appearance: none; - box-shadow: 2px 3px 2px -2px rgba(0, 0, 0, 0.08) inset; - transition: border .3s linear 0s; - font-family: "Omnes-ECOMP-W02", Arial; } - - textarea:focus, - input:focus { - outline: 0; - border-color: #0568ae; } - - .input-append { - display: table; } - - .input-append > div { - display: table-cell; - width: 1%; } - - .input-append > .field-group { - width: 100%; } - - .row .field-group input[class*="span"] { - float: none; } - - .field-group { - position: relative; - display: inline-block; } - - label + .field-group, - label + .input-append, - label + .row, - label + .row-nowrap, - label + .form-row { - margin-top: 5px; } - - .field-group { - position: relative; - display: block; } - - .field-group input:not([type="button"])[disabled] { - padding-right: 15px; } - - input:invalid, - textarea:invalid, - select:invalid { - outline: none !important; } - - .form-row { - margin-top: 20px; } - - .form-row.nomar { - margin: 0; } - - .row-nowrap.no-flex.form-row > label + br { - margin-bottom: 5px; } - - span.form-row { - display: inline-block; } - - legend + .form-row { - margin-top: 20px; } - - .tooltip-onclick input { - padding-right: 45px; } - - .ds2_touchevents .tooltip-onclick input:focus { - padding-right: 95px; } - - .radio { - position: relative; - min-height: 24px; - font-family: "Omnes-ECOMP-W02", Arial; - font-size: 1.6rem; - margin-bottom: 5px; } - .radio input { - -webkit-tap-highlight-color: transparent; - height: 10px; - margin: 6px; - opacity: 0; - outline: none; - position: absolute; - left: 1px; - top: 1px; - width: 10px; } - .radio input:focus + .skin { - border-color: #0568ae; } - .radio input:focus + .skin:before { - content: ""; - height: 34px; - left: -6px; - top: -6px; - outline: 1px dotted #000000; - position: absolute; - width: 34px; } - .radio input + .skin { - border-radius: 100%; } - .radio input:checked + .skin:after { - background-color: #0568ae; - border-radius: 100%; - border: 3px solid #FFFFFF; - content: ""; - display: block; - height: 16px; - position: absolute; - width: 16px; } - .radio input:disabled + .skin { - cursor: not-allowed; - background-color: #d2d2d2; - border-color: #d2d2d2; - color: #666666; } - .radio input:disabled + .skin + span { - cursor: not-allowed; - color: #666666; } - .radio input:disabled:checked + .skin:after { - background-color: #666666; } - .radio input:invalid + .skin { - border: solid 1px #cf2a2a; } - .radio .skin { - background-color: #FFFFFF; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - left: 0; - position: absolute; - top: 0; - width: 24px; } - .radio span { - display: inline-block; - margin-left: 34px; - margin-top: 0; - position: relative; - top: 3px; } - .radio label { - font-size: 1.6rem; - font-family: "Omnes-ECOMP-W02", Arial; } - - .radio.inline { - display: inline-block; - margin-bottom: 10px; - vertical-align: middle; - margin-right: 10px; } - .radio.inline:last-child { - margin-right: 0; } - - .radio-box { - border: 1px solid #d2d2d2; - border-radius: 8px; } - .radio-box > [role="radio"] label { - padding: 15px 15px 20px 15px; - display: block; - width: 100%; } - .radio-box > [role="radio"] label .skin + span { - top: 2px; } - .radio-box > [role="radio"] + div { - padding: 0 15px 15px 47px; } - .radio-box > [aria-checked="false"] label > input { - top: 15px; - left: 15px; } - .radio-box > [aria-checked="false"] label .skin { - top: 15px; - left: 15px; } - .radio-box > [aria-checked="true"] label > input { - top: 13px; - left: 13px; } - .radio-box > [aria-checked="true"] label .skin { - top: 13px; - left: 13px; } - - .radio-box.active { - border: 3px solid #0568ae; } - .radio-box.active > [role="radio"] label { - padding: 13px 14px 19px 13px; } - - .checkbox { - position: relative; - min-height: 24px; - font-family: "Omnes-ECOMP-W02", Arial; - font-size: 1rem; - } - .checkbox input { - -webkit-tap-highlight-color: transparent; - height: 20px; - margin-left: 20px; - opacity: 0; - outline: none; - position: absolute; - left: 1px; - top: 1px; - width: 10px; } - .checkbox input:focus + .skin { - border-color: #0568ae; } - .checkbox input:focus + .skin:before { - content: ""; - height: 34px; - left: -6px; - top: -6px; - outline: 1px dotted #000000; - position: absolute; - width: 34px; } - .checkbox input:checked:not(:disabled) + .skin { - background-color: #0568ae; - border-color: #0568ae; } - .checkbox input:checked:disabled + .skin:after { - color: #5A5A5A; } - .checkbox input:checked + .skin:after { - height: 20px; - width: 10px; - background-color: transparent; - font-size: 23.4px; - color: #FFFFFF; - line-height: 21px; } - .checkbox input:disabled + .skin { - cursor: not-allowed; - background-color: #d2d2d2; - border-color: #d2d2d2; - color: #666666; } - .checkbox input:disabled + .skin + span { - cursor: not-allowed; - color: #666666; } - .checkbox input:invalid + .skin { - border: solid 1px #cf2a2a; } - .checkbox input:indeterminate + .skin:after { - background-color: transparent; - font-size: 25px; - color: #0574ac; - content: "\e920"; } - .checkbox .skin { - background-color: #fff; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - width: 24px; - position: absolute; - left: 0; - top: 0; } - .checkbox span { - display: inline-block; - margin-left: 34px; - margin-top: 0; - position: relative; - top: 3px; } - .checkbox label { - font-size: 1.6rem; - font-family: "Omnes-ECOMP-W02", Arial; } - .checkbox input { - z-index: 9999; } - .checkbox input.indeterminate + .skin:after { - font-size: 22px; - color: #0568ae; } - - .breadcrumb { - padding: 10px 15px; - height: 40px; - list-style: none; - border-bottom: 1px solid #d2d2d2; - font-size: 1.2rem; - width: 100%; - z-index: 1000; } - - .breadcrumb > li { - position: relative; - display: inline-block; - margin-right: 15px; } - - .breadcrumb > li:after { - font-size: 8px; - margin-right: 0; - right: -8px; - color: #333333; } - - .breadcrumb > li:last-child { - color: #333333; } - - .breadcrumb > li:last-child:after { - content: ""; } - - .breadcrumb li > * { - float: none !important; - margin: 0; } - - .breadcrumb { - padding: 10px 15px !important; } - - /* ARROW */ - /* spanish */ - .datepicker { - background-color: #FFFFFF; - padding: 0; - border-radius: 5px; - direction: ltr; } - .datepicker > div { - display: none; } - .datepicker table { - -webkit-touch-callout: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - margin: 0 0 0 0; } - .datepicker td { - text-align: center; - display: block; - width: 30px; - height: 30px; - border: none; } - .datepicker td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - border-radius: 4px; } - .datepicker td span:hover { - background: #eeeeee; } - .datepicker td span.disabled { - background: none; - color: #5A5A5A; - cursor: default; } - .datepicker td span.disabled:hover { - background: none; - color: #5A5A5A; - cursor: default; } - .datepicker td span.active { - color: #FFFFFF; - background-color: #0568ae; - border-color: #357ebd; } - .datepicker td span.active:hover { - color: #FFFFFF; - background-color: #0568ae; - border-color: #357ebd; } - .datepicker td span.active.disabled { - color: #FFFFFF; - background-color: #0568ae; - border-color: #357ebd; } - .datepicker th { - text-align: center; - display: block; - width: 30px; - height: 30px; - border: none; } - .datepicker tbody:focus { - outline: none; } - .datepicker td.day { - background-color: transparent; - color: #0568ae; - cursor: pointer; - font-family: "Omnes-ECOMP-W02-Medium", Arial; - font-size: 16px; - height: 34px; - line-height: 30rem; - margin: -2px -1px 0 0; - overflow: hidden; - text-align: center; - width: 42px; } - .datepicker:focus { - outline: 1px dotted #191919; - outline-offset: -2px; } - .datepicker th[tabindex]:focus { - outline-offset: -15px; } - .datepicker td.day.focused { - background: #ededed; - cursor: pointer; } - .datepicker td.day.focused.active { - background-color: #ededed; - color: #0568ae; } - .datepicker td.disabled { - font-family: "Omnes-ECOMP-W02", Arial; - color: #5A5A5A; - cursor: default; } - .datepicker td.disabled:hover { - font-family: "Omnes-ECOMP-W02", Arial; - color: #5A5A5A; - cursor: default; } - .datepicker td.disabled:hover .show-date { - font-family: "Omnes-ECOMP-W02", Arial; - color: #5A5A5A; } - .datepicker td.disabled .show-date { - font-family: "Omnes-ECOMP-W02", Arial; - color: #5A5A5A; } - .datepicker td.today { - color: #FFFFFF; - background-color: #0568ae; } - .datepicker td.today:hover { - color: #FFFFFF; - background-color: #0568ae; - color: #FFFFFF; - background-color: #0568ae; } - .datepicker td.today:active { - color: #FFFFFF; - background-color: #0568ae; } - .datepicker td.today:focus { - color: #FFFFFF; - background-color: #0568ae; } - .datepicker td.today.disabled { - color: #FFFFFF; - background-color: #0568ae; } - .datepicker td.today.active { - color: #FFFFFF; - background-color: #0568ae; } - .datepicker td.today.active:hover { - color: #FFFFFF; } - .datepicker td.selected { - color: #FFFFFF; - background-color: #95959500; } - .datepicker td.selected:hover { - color: #FFFFFF; - background-color: #95959500; } - .datepicker td.selected.disabled { - color: #FFFFFF; - background-color: #95959500; } - .datepicker td.active:not(.new) { - color: #FFFFFF; - border-color: #357ebd; } - .datepicker td.active:not(.new) .show-date { - color: #0568ae; - font-family: "Omnes-ECOMP-W02-Medium", Arial; } - .datepicker td.active:hover:not(.new) { - color: #FFFFFF; - border-color: #357ebd; } - .datepicker td.active:hover:not(.new) .show-date { - color: #0568ae; - font-family: "Omnes-ECOMP-W02-Medium", Arial; } - .datepicker .start-date .show-date { - background-color: #0568ae; - color: #FFFFFF !important; - border-radius: 5px 0 0 5px; - z-index: 1; } - .datepicker .start-date .show-date:before { - background-color: #0568ae; - content: ""; - display: block; - height: 26px; - left: 20px; - position: absolute; - width: 100%; - z-index: -1; } - .datepicker .between-date .show-date { - background-color: #0568ae; - color: #FFFFFF !important; } - .datepicker .between-date .show-date:before { - background-color: #0568ae; - content: ""; - display: block; - height: 26px; - left: 0; - position: absolute; - width: 100%; - z-index: -1; } - .datepicker .between-date:first-child .show-date:before { - background-color: #FFFFFF; - content: ""; - height: 26px; - position: absolute; - left: 0; - width: 8px; } - .datepicker .end-date .show-date { - background-color: #0568ae; - color: #FFFFFF !important; - border-radius: 0 5px 5px 0; } - .datepicker .end-date .show-date:before { - background-color: #0568ae; - content: ""; - display: block; - height: 26px; - left: -20px; - position: absolute; - width: 100%; - z-index: -1; } - .datepicker .end-date:first-child .show-date:after { - background-color: #FFFFFF; - content: ""; - height: 26px; - position: absolute; - left: 0; - width: 8px; } - .datepicker .end-date:first-child .show-date::before { - background-color: #FFFFFF; } - .datepicker tr td.start-date:last-child .show-date:after { - background-color: #FFFFFF; - content: ""; - height: 26px; - position: absolute; - right: 0; - width: 8px; } - .datepicker tr td.start-date:last-child:focus .show-date:after { - height: 30px; - width: 30px; - background-color: transparent; } - .datepicker tr td.start-date:first-child:focus .show-date:after { - height: 30px; - width: 30px; - background-color: transparent; } - .datepicker tr td.between-date:last-child .show-date:after { - background-color: #FFFFFF; - content: ""; - height: 26px; - position: absolute; - right: 0; - width: 8px; } - .datepicker tr td.between-date:last-child:focus .show-date:after { - height: 30px; - width: 30px; - background-color: transparent; } - .datepicker tr td.between-date:first-child:focus .show-date:after { - height: 30px; - width: 30px; - background-color: transparent; } - .datepicker tr td.end-date:last-child:focus .show-date:after { - height: 30px; - width: 30px; - background-color: transparent; } - .datepicker tr td.end-date:first-child:focus .show-date:after { - height: 30px; - width: 30px; - background-color: transparent; } - .datepicker th.datepicker-switch { - width: 198px; - font-size: 20px; - font-weight: normal; - cursor: default !important; } - .datepicker thead tr:first-child th { - cursor: pointer; - height: 60px; - line-height: 60px; } - .datepicker thead tr:first-child th.cw { - cursor: default; - background-color: transparent; } - .datepicker tfoot tr th { - cursor: pointer; - height: 60px; - line-height: 60px; - height: auto; - line-height: normal; } - .datepicker tfoot tr th li { - margin-bottom: 5px; } - .datepicker .prev { - color: transparent; - font-size: 0; - margin: 0 -1px -1px 0; - width: 46px; } - .datepicker .prev i { - color: #0568ae; - position: absolute; - font-size: 27px; - margin: 0; - top: 15px; - left: 8px; } - .datepicker .next { - color: transparent; - font-size: 0; - margin: 0 -1px -1px 0; - width: 46px; } - .datepicker .next i { - color: #0568ae; - position: absolute; - font-size: 27px; - margin: 0; - top: 15px; - right: 8px; } - .datepicker .cw { - font-size: 5px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; } - .datepicker .due-date .show-date { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - background-color: #cf2a2a; - border-radius: 5px; - color: #FFFFFF !important; } - .datepicker .day.active .show-date:after { - border: 2px solid #0568ae; - border-radius: 7px; - content: ""; - display: block; - height: 30px; - left: 4px; - position: absolute; - top: 0; - width: 30px; } - .datepicker .day:focus .show-date:after { - border: 2px solid #0568ae; - border-radius: 7px; - content: ""; - display: block; - height: 30px; - left: 4px; - position: absolute; - top: 0; - width: 30px; - height: 30px; - left: 4px; - top: 0; - width: 30px; } - .datepicker .due-date.disabled .show-date:after { - border: 2px solid #0568ae; - border-radius: 7px; - content: ""; - display: block; - height: 30px; - left: 4px; - position: absolute; - top: 0; - width: 30px; } - .datepicker .day.due-date:focus .show-date:after { - height: 30px; - left: 4px; - top: 0; - width: 30px; } - .datepicker .due-date.old:after { - visibility: hidden; } - .datepicker .due-date.new:after { - visibility: hidden; } - .datepicker .due-date.active:after { - border-color: #FFFFFF; } - .datepicker .due-date.active.focused { - color: #0568ae !important; } - .datepicker .due-date.active.focused:after { - border-color: #cf2a2a !important; } - .datepicker .dow { - height: 24px; - width: 42px; - font-weight: normal; - position: relative; - overflow: hidden; - color: transparent; - letter-spacing: -6px; - margin: 0 -1px -1px 0; } - .datepicker .dow span[aria-hidden="true"] { - bottom: 0; - color: #5A5A5A; - display: block; - left: 1px; - letter-spacing: 0; - line-height: .9; - margin: 0 auto; - padding: 0; - position: relative; - width: 22px; } - .datepicker .calendar-legend { - margin-top: 3px; - margin-bottom: 20px; } - .datepicker .calendar-legend li { - font-size: 1.4rem; - font-weight: normal; - margin-bottom: 5px; - padding-left: 10px; - padding-top: 5px; - position: relative; } - .datepicker i.legend-due-date { - background-color: #cf2a2a; - border-radius: 5px; - height: 18px; - width: 18px; - margin-right: 8px; - vertical-align: middle; - display: inline-block; } - .datepicker i.legend-selected-date { - background-color: #FFFFFF; - border: 2px solid #0568ae; - border-radius: 5px; - height: 18px; - width: 18px; - margin-right: 8px; - vertical-align: middle; - display: inline-block; } - .datepicker i.legend-selectedisdue { - background-color: #FFFFFF; - border: 2px solid #0568ae; - border-radius: 5px; - display: inline-block; - height: 18px; - margin-right: 8px; - position: relative; - vertical-align: middle; - width: 18px; } - .datepicker i.legend-selectedisdue:after { - background-color: #cf2a2a; - border-radius: 3px; - content: ""; - display: block; - height: 10px; - left: 2px; - position: absolute; - top: 2px; - width: 10px; } - .datepicker .text-left { - width: 100%; } - .datepicker .active.old { - background-color: #ededed !important; - color: #ededed !important; } - - .datepicker-inline { - width: 220px; } - - .datepicker.datepicker-rtl { - direction: rtl; } - .datepicker.datepicker-rtl td span { - float: right; } - - .datepicker-dropdown { - top: 0; - left: 0; } - .datepicker-dropdown:before { - content: " "; - display: inline-block; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 10px solid #d2d2d2; - border-top: 0; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; } - .datepicker-dropdown:after { - content: " "; - display: inline-block; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 10px solid #fff; - border-top: 0; - position: absolute; } - - .datepicker-dropdown.datepicker-orient-left:before { - left: 16px; } - - .datepicker-dropdown.datepicker-orient-left:after { - left: 16px; } - - .datepicker-dropdown.datepicker-orient-right:before { - right: 16px; } - - .datepicker-dropdown.datepicker-orient-right:after { - right: 16px; } - - .datepicker-dropdown.datepicker-orient-top:before { - top: -10px; } - - .datepicker-dropdown.datepicker-orient-top:after { - top: -9px; } - - .datepicker-dropdown.datepicker-orient-bottom:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid #959595; } - - .datepicker-dropdown.datepicker-orient-bottom:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #fff; } - - .datepicker.days div.datepicker-days { - display: block; } - - .datepicker.months div.datepicker-months { - display: block; } - - .datepicker.years div.datepicker-years { - display: block; } - - .show-date { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - color: #0568ae; - height: 26px; - line-height: 26px; - margin: 4px auto 0; - width: 26px; } - - .input-group.date .input-group-addon i { - cursor: pointer; - width: 16px; - height: 16px; } - - .datepicker.dropdown-menu { - box-shadow: 0 10px 15px -10px rgba(0, 0, 0, 0.7); - position: absolute; - top: 100%; - left: 0; - float: left; - display: none; - margin-top: 13px; - width: 290px; - list-style: none; - background-color: #FFFFFF; - border: 1px solid #d2d2d2; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 5px; - color: #333333; - font-size: 13px; - line-height: 1.428571429; - z-index: 1050; } - .datepicker.dropdown-menu th { - display: block; - float: left; - padding: 0; - position: relative; } - .datepicker.dropdown-menu td { - display: block; - float: left; - padding: 0; - position: relative; } - - .s { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: -62px 0; } - - .m { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: -5px 0; } - - .t { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: -19px 0; } - - .w { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: -34px 0; } - - .f { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: -49px 0; } - - .d { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: 0 0; } - - .l { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: 0 0; } - - .v { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: 0 0; } - - .j { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: #FFFFFF; - background-repeat: no-repeat; - background-position: 0 0; } - - .datepicker { - background-color: #fff; - padding: 0; - border-radius: 5px; - direction: ltr; } - - .datepicker-inline { - width: 220px; } - - .datepicker.datepicker-rtl { - direction: rtl; } - - .datepicker.datepicker-rtl td span { - float: right; } - - .datepicker-dropdown { - top: 0; - left: 0; } - - /* ARROW */ - .datepicker-dropdown:before { - content: " "; - display: inline-block; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 10px solid #d2d2d2; - border-top: 0; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; } - - .datepicker-dropdown:after { - content: " "; - display: inline-block; - border-left: 10px solid transparent; - border-right: 10px solid transparent; - border-bottom: 10px solid #fff; - border-top: 0; - position: absolute; } - - .datepicker-dropdown.datepicker-orient-left:before, - .datepicker-dropdown.datepicker-orient-left:after { - left: 255px; } - - .datepicker-dropdown.datepicker-orient-right:before, - .datepicker-dropdown.datepicker-orient-right:after { - right: 16px; } - - .datepicker-dropdown.datepicker-orient-top:before { - top: -10px; } - - .datepicker-dropdown.datepicker-orient-top:after { - top: -9px; } - - .datepicker-dropdown.datepicker-orient-bottom:before { - bottom: -7px; - border-bottom: 0; - border-top: 7px solid #959595; } - - .datepicker-dropdown.datepicker-orient-bottom:after { - bottom: -6px; - border-bottom: 0; - border-top: 6px solid #fff; } - - .datepicker > div { - display: none; } - - .datepicker.days div.datepicker-days { - display: block; } - - .datepicker.months div.datepicker-months { - display: block; } - - .datepicker.years div.datepicker-years { - display: block; } - - .datepicker table { - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - margin: 0 0 0 0; } - - .datepicker td, - .datepicker th { - text-align: center; - display: block; - width: 30px; - height: 30px; - border: none; } - - .datepicker tbody :focus { - outline: none; } - - .datepicker td.day { - background-color: transparent; - color: #0568ae; - cursor: pointer; - font-family: "Omnes-ECOMP-W02-Medium", Arial; - font-size: 16px; - height: 34px; - line-height: 30rem; - margin: -2px -1px 0 0; - overflow: hidden; - text-align: center; - width: 42px; } - - .datepicker :focus { - outline: 1px dotted #000; - outline-offset: -2px; } - - .datepicker td.day.focused { - background: #ededed; - cursor: pointer; } - - .datepicker td.day.focused.active { - background-color: #ededed; - color: #0568ae; } - - .datepicker td.disabled, - .datepicker td.disabled:hover { - font-family: "Omnes-ECOMP-W02", Arial; - color: #5a5a5a; - cursor: default; } - - .datepicker td.today, - .datepicker td.today:hover, - .datepicker td.today.disabled { - color: #fff; - background-color: #0568ae; } - - .datepicker td.today.active, - .datepicker td.today:active, - .datepicker td.today:hover, - .datepicker td.today:focus { - color: #fff; - background-color: #0568ae; } - - .datepicker td.today.active:hover { - color: #fff; } - - .datepicker td.selected, - .datepicker td.selected:hover, - .datepicker td.selected.disabled { - color: #ffffff; - background-color: #959595; } - - .datepicker td.active:not(.new), - .datepicker td.active:hover:not(.new) { - color: #ffffff; - border-color: #357ebd; } - - .show-date { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - color: #0568ae; - height: 26px; - line-height: 26px; - margin: 4px auto 0; - width: 26px; } - - .datepicker .start-date .show-date, - .datepicker .between-date .show-date, - .datepicker .end-date .show-date { - background-color: #0568ae; - color: #fff !important; } - - .datepicker .start-date .show-date { - border-radius: 5px 0 0 5px; - z-index: 1; } - - .datepicker .start-date .show-date:before { - background-color: #0568ae; - content: ""; - display: block; - height: 26px; - left: 20px; - position: absolute; - width: 100%; - z-index: -1; } - - .datepicker .between-date .show-date:before { - background-color: #0568ae; - content: ""; - display: block; - height: 26px; - left: 0; - position: absolute; - width: 100%; - z-index: -1; } - - .datepicker .end-date .show-date { - border-radius: 0 5px 5px 0; } - - .datepicker .end-date .show-date:before { - background-color: #0568ae; - content: ""; - display: block; - height: 26px; - left: -20px; - position: absolute; - width: 100%; - z-index: -1; } - - .datepicker .between-date:first-child .show-date:before { - background-color: #fff; - content: ""; - height: 26px; - position: absolute; - left: 0; - width: 8px; } - - .datepicker .end-date:first-child .show-date:after { - background-color: #fff; - content: ""; - height: 26px; - position: absolute; - left: 0; - width: 8px; } - - .datepicker .end-date:first-child .show-date::before { - background-color: #fff; } - - .datepicker tr td.start-date:last-child .show-date:after, - .datepicker tr td.between-date:last-child .show-date:after { - background-color: #fff; - content: ""; - height: 26px; - position: absolute; - right: 0; - width: 8px; } - - .datepicker tr td.start-date:last-child:focus .show-date:after, - .datepicker tr td.end-date:last-child:focus .show-date:after, - .datepicker tr td.between-date:last-child:focus .show-date:after, - .datepicker tr td.start-date:first-child:focus .show-date:after, - .datepicker tr td.end-date:first-child:focus .show-date:after, - .datepicker tr td.between-date:first-child:focus .show-date:after { - height: 30px; - width: 30px; - background-color: transparent; } - - .datepicker td.active:not(.new) .show-date, - .datepicker td.active:hover:not(.new) .show-date { - color: #0568ae; - font-family: "Omnes-ECOMP-W02-Medium", Arial; } - - .datepicker td.disabled .show-date, - .datepicker td.disabled:hover .show-date { - font-family: "Omnes-ECOMP-W02", Arial; - color: #5a5a5a; } - - .datepicker td span { - display: block; - width: 23%; - height: 54px; - line-height: 54px; - float: left; - margin: 1%; - cursor: pointer; - border-radius: 4px; } - - .datepicker td span:hover { - background: #eeeeee; } - - .datepicker td span.disabled, - .datepicker td span.disabled:hover { - background: none; - color: #5a5a5a; - cursor: default; } - - .datepicker td span.active, - .datepicker td span.active:hover, - .datepicker td span.active.disabled { - color: #ffffff; - background-color: #0568ae; - border-color: #357ebd; } - - .datepicker th.datepicker-switch { - width: 198px; - font-size: 20px; - font-weight: normal; - cursor: default !important; } - - .datepicker thead tr:first-child th, - .datepicker tfoot tr th { - cursor: pointer; - height: 60px; - line-height: 60px; } - - .datepicker tfoot tr th { - height: auto; - line-height: normal; } - - .datepicker tfoot tr th li { - margin-bottom: 5px; } - - .datepicker .prev, - .datepicker .next { - color: transparent; - font-size: 0; - margin: 0 -1px -1px 0; - width: 46px; } - - .datepicker .prev i, - .datepicker .next i { - color: #0568ae; - position: absolute; - font-size: 27px; - margin: 0; - top: 15px; } - - .datepicker .prev i { - left: 8px; } - - .datepicker .next i { - right: 8px; } - - .datepicker .cw { - font-size: 5px; - width: 12px; - padding: 0 2px 0 5px; - vertical-align: middle; } - - .datepicker thead tr:first-child th.cw { - cursor: default; - background-color: transparent; } - - .input-group.date .input-group-addon i { - cursor: pointer; - width: 16px; - height: 16px; } - - .datepicker.dropdown-menu { - box-shadow: 0 10px 15px -10px rgba(0, 0, 0, 0.7); - position: absolute; - top: 100%; - left: 0; - float: left; - display: none; - margin-top: 13px; - width: 290px; - list-style: none; - background-color: #ffffff; - border: 1px solid #d2d2d2; - border: 1px solid rgba(0, 0, 0, 0.2); - border-radius: 5px; - color: #333333; - font-size: 13px; - line-height: 1.428571429; - z-index: 1050; } - - .datepicker.dropdown-menu th, - .datepicker.dropdown-menu td { - display: block; - float: left; - padding: 0; - position: relative; } - - .datepicker .due-date .show-date { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - background-color: #cf2a2a; - border-radius: 5px; - color: #fff !important; } - - .datepicker .day.active .show-date:after, - .datepicker .day:focus .show-date:after, - .datepicker .due-date.disabled .show-date:after { - border: 2px solid #0568ae; - border-radius: 7px; - content: ""; - display: block; - height: 30px; - left: 4px; - position: absolute; - top: 0; - width: 30px; } - - .datepicker .day:focus .show-date:after { - height: 30px; - left: 4px; - top: 0; - width: 30px; } - - .datepicker .day.due-date:focus .show-date:after { - height: 30px; - left: 4px; - top: 0; - width: 30px; } - - .datepicker .due-date.old:after, - .datepicker .due-date.new:after { - visibility: hidden; } - - .datepicker .due-date.active:after { - border-color: #fff; } - - .datepicker .due-date.active.focused { - color: #0568ae !important; } - - .datepicker .due-date.active.focused:after { - border-color: #cf2a2a !important; } - - .datepicker .dow { - height: 24px; - width: 42px; - font-weight: normal; - position: relative; - overflow: hidden; - color: transparent; - letter-spacing: -6px; - margin: 0 -1px -1px 0; } - - .datepicker .dow span[aria-hidden="true"] { - bottom: 0; - color: #5a5a5a; - display: block; - left: 1px; - letter-spacing: 0; - line-height: .9; - margin: 0 auto; - padding: 0; - position: relative; - width: 22px; } - - .datepicker .calendar-legend { - margin-top: 3px; - margin-bottom: 20px; } - - .datepicker .calendar-legend li { - font-size: 1.4rem; - font-weight: normal; - margin-bottom: 5px; - padding-left: 10px; - padding-top: 5px; - position: relative; } - - .datepicker i.legend-due-date { - background-color: #cf2a2a; - border-radius: 5px; - height: 18px; - width: 18px; - margin-right: 8px; - vertical-align: middle; - display: inline-block; } - - .datepicker i.legend-selected-date { - background-color: #fff; - border: 2px solid #0568ae; - border-radius: 5px; - height: 18px; - width: 18px; - margin-right: 8px; - vertical-align: middle; - display: inline-block; } - - .datepicker i.legend-selectedisdue { - background-color: #fff; - border: 2px solid #0568ae; - border-radius: 5px; - display: inline-block; - height: 18px; - margin-right: 8px; - position: relative; - vertical-align: middle; - width: 18px; } - - .datepicker i.legend-selectedisdue:after { - background-color: #cf2a2a; - border-radius: 3px; - content: ""; - display: block; - height: 10px; - left: 2px; - position: absolute; - top: 2px; - width: 10px; } - - .datepicker .text-left { - width: 100%; } - - .datepicker .active.old { - background-color: #ededed !important; - color: #ededed !important; } - - .s, - .m, - .t, - .w, - .f, - .d, - .l, - .v, - .j { - display: block; - height: 20px; - width: 12px; - margin: 0 auto; - background-color: white; - background-repeat: no-repeat; } - - .s { - background-position: -62px 0; } - - .m { - background-position: -5px 0; } - - .t { - background-position: -19px 0; } - - .w { - background-position: -34px 0; } - - .f { - background-position: -49px 0; } - - /* spanish */ - .d { - background-position: 0 0; } - - .l { - background-position: 0 0; } - - .v { - background-position: 0 0; } - - .j { - background-position: 0 0; } - - .datepicker-container { - position: relative; } - - .btn-calendar-icon:focus .icon-primary-calendar { - outline: 1px dotted #191919; } - - .btn-calendar-icon:focus { - outline: none; } - - /* remove focus outline when dropdown is opened */ - /*resolve blue focus outline over dropdown with error*/ - select { - margin-right: -1; - - height: 36px; - line-height: 25px; - - background-color: #95959521; } - - .selectWrap.disabled .icon-primary-down { - color: #d6d6d6; } - - .selectWrap.disabled input.awd-select { - z-index: 0; - padding: 10px 45px 10px 15px; - text-indent: 0; } - - .selectWrap.disabled button.awd-select { - z-index: 0; - text-indent: 15px; } - - .selectWrap.disabled:after { - color: #5A5A5A; - cursor: not-allowed; } - - input.awd-select { - background-color: transparent; - border: 1px solid #d2d2d2; - border-radius: 6px; - box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15); - color: #333333; - display: block; - font-family: "Omnes-ECOMP-W02", Arial; - /*font-size: 1.6rem;*/ - height: 36px; - line-height: 0; - margin-bottom: 0; - position: relative; - text-align: left; - top: 0; - width: 100%; - z-index: 10; - padding: 12px 45px 8px 15px; - user-select: none; } - input.awd-select:focus { - border-color: #0568ae !important; - text-overflow: ellipsis; - padding-right: 45px; } - - button.awd-select { - background-color: transparent; - border: 1px solid #d2d2d2; - border-radius: 6px; - box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15); - color: #333333; - display: block; - font-family: "Omnes-ECOMP-W02", Arial; - /*font-size: 1.6rem;*/ - height: 36px; - line-height: 36px; - margin-bottom: 0; - position: relative; - text-align: left; - top: 0; - width: 100%; - z-index: 10; } - button.awd-select:not(.large) { - text-indent: 15px; - white-space: nowrap; - overflow: hidden; - text-overflow: clip; - text-overflow: ellipsis; } - button.awd-select img { - height: 26px; - margin-right: 7px; - margin-top: -10px; - position: relative; - top: 2px; - vertical-align: text-bottom; } - button.awd-select:focus { - border-color: #0568ae !important; } - button.awd-select i { - font-size: 23px; - position: absolute; - right: 33px; - top: 5px; - z-index: 1000; } - - button.awd-select.large { - align-items: center; - display: flex; - height: 60px; - line-height: 20px; - overflow: hidden; - padding-left: 70px; - vertical-align: middle; } - button.awd-select.large img { - height: 40px; - left: 20px; - position: absolute; - top: 20px; - width: 40px; } - - .selectWrap.large { - height: 60px; } - .selectWrap.large .awd-select-list-item { - align-items: center; - display: flex; - height: 60px; - line-height: 20px; - overflow: hidden; - padding-left: 70px; - vertical-align: middle; } - .selectWrap.large .awd-select-list-item img { - height: 40px; - left: 20px; - position: absolute; - top: 20px; - width: 40px; - top: 10px; } - - .inputWrap { - border-radius: 6px; - position: relative; - height: 36px; - line-height: 44px; - display: block; - margin: 0; - } - - button.awd-select.active { - border-radius: 6px 6px 0 0; } - button.awd-select.active:focus { - border-color: #d2d2d2 !important; } - - input.awd-select.active { - border-radius: 6px 6px 0 0; } - input.awd-select.active:focus { - border-color: #d2d2d2 !important; } - - .selectWrapper { - position: relative; } - - span.selectWrap input[readonly]:focus { - color: transparent; - text-shadow: 0 0 0 #000; } - - .isIE.ds2-no-colors .awd-select:focus { - outline: 1px dashed transparent; } - - .awd-select-list { - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15); - border-radius: 0 0 6px 6px; - position: absolute; - border: 1px solid #d2d2d2; - border-top: 0; - padding: 0; - background-color: #f2f2f2; - z-index: 1000; - width: 100%; - max-height: 320px; - overflow-y: auto; } - - .awd-select-list-item { - cursor: pointer; - height: 100%; - min-height: 36px; - line-height: 20px; - overflow: hidden; - padding: 8px 15px; - position: relative; - z-index: 1000; } - .awd-select-list-item:hover { - cursor: pointer; - background-color: #d2d2d2; - outline: 1px dashed transparent; } - .awd-select-list-item:focus { - cursor: pointer; - background-color: #d2d2d2; - outline: 1px dashed transparent; } - .awd-select-list-item img { - margin-top: 0; - margin-right: 7px; - height: 26px; - width: 26px; } - - .selectWrap { - border-radius: 6px; - position: relative; - height: 36px; - line-height: 28px; - display: block; - margin: 0; - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); } - .selectWrap:not(.large) .awd-select-list-item:first-child { - margin-top: 15px; } - .selectWrap:not(.large) .awd-select-list-item:last-child { - margin-bottom: 15px; } - .selectWrap .icon-primary-down { - font-size: 23px; - margin-top: -11px; - position: absolute; - right: 4px; - top: 50%; } - .selectWrap + [aria-expanded="true"] { - padding-bottom: 9px; - padding-top: 20px; } - - .awd-select-list-item[data-hover="true"] { - background-color: #d2d2d2; } - - span input.awd-select { - width: 100%; - cursor: pointer; - text-overflow: ellipsis; - padding-right: 45px; } - - li.optgroup-wrapper { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - cursor: default !important; - padding: 0px 15px; } - li.optgroup-wrapper:first-child { - padding-top: 10px; } - li.optgroup-wrapper:hover { - background-color: #f2f2f2; } - - ul.optgroup { - font-family: "Omnes-ECOMP-W02", Arial; - cursor: pointer !important; - margin: 0 -15px; } - ul.optgroup li { - padding: 0 0 0 33px; } - - label + .selectWrap { - margin-top: 4px; } - - .group .selectWrap { - margin: 0 0 10px 0; } - - select.awd-select { - position: relative; - top: 0; - left: 0; - font-size: 16px; - z-index: 1010; - height: 33px; - min-width: 100%; - opacity: 0.01; } - select.awd-select > optgroup { - padding-left: 8px; - font-style: normal; - margin-top: 10px; } - select.awd-select > optgroup:first-child { - margin-top: 0; } - select.awd-select > optgroup > option { - padding-left: 8px; } - select.awd-select > option { - padding-left: 8px; } - select.awd-select + span { - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); - position: absolute; - top: 0; - left: 0; - z-index: 0; - display: block; - border: 1px solid #d2d2d2; - border-radius: 6px; - height: 35px; - line-height: 0; - padding: 18px 45px 15px 15px; - width: 100%; - font-size: 1.6rem; - padding-right: 45px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - select.awd-select + span > i { - font-size: 23px; - position: absolute; - right: 33px; - top: 5px; - z-index: 1000; } - select.awd-select + span > i:before { - left: 1px; - position: absolute; - top: -1px; } - select.awd-select:focus + span { - border-color: #0568ae; } - - - .btn.disabled[ddh-load-button] { - line-height: 46px; - padding: 0 19px 0 18px; } - - .btn.disabled[ddh-load-button] { - color: #666666; } - - .icon-primary-spinner-ddh.large { - height: 50px; - width: 50px; } - - .icon-primary-spinner-ddh.small { - height: 30px; - width: 30px; } - - .icon-primary-spinner-ddh { - -webkit-animation: 1s linear infinite spinner; - animation: 1s linear infinite spinner; - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNiAzNiIgaWQ9InN2Zy1zcGlubmVyIiB4PSIwcHgiIHk9IjBweCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CiAgIDxwYXRoIGZpbGw9IiNGNUY1RjUiIGQ9Ik0xOCAzNkM4LjEgMzYgMCAyNy45IDAgMThTOC4xIDAgMTggMHMxOCA4LjEgMTggMTgtOC4xIDE4LTE4IDE4em0wLTMxLjVjLTcuNSAwLTEzLjUgNi0xMy41IDEzLjVTMTAuNiAzMS41IDE4IDMxLjVjNy41IDAgMTMuNS02LjEgMTMuNS0xMy41IDAtNy41LTYtMTMuNS0xMy41LTEzLjV6Ii8+CiAgIDxwYXRoIGZpbGw9IiMwNTY4QUUiIGlkPSJzcGlubmVyIiBkPSJNMzAuNyA1LjNsLTMuMSAzLjJjMi40IDIuNCAzLjkgNS44IDMuOSA5LjUgMCA3LjQtNi4xIDEzLjUtMTMuNSAxMy41UzQuNSAyNS40IDQuNSAxOCAxMC42IDQuNSAxOCA0LjVWMEM4LjEgMCAwIDguMSAwIDE4czguMSAxOCAxOCAxOCAxOC04LjEgMTgtMThjMC01LTItOS41LTUuMy0xMi43eiIgdHJhbnNmb3JtPSIiPiAgICAgIAogICA8L3BhdGg+Cjwvc3ZnPg==); } - - .btn-small .icon-primary-spinner-ddh { - height: 30px !important; - width: 30px !important; } - - .btn-small .icon-primary-spinner { - height: 30px; - width: 30px; } - - i:focus { - outline: thin dotted #666; } - - .p-col-md-12 { - width: 50%; } - - .fieldLabel { - color: #666666; } - - .fieldLabel input { - color: #666666; } - - - .fade1, .fadel { - opacity: 0.4; } - - .fade2, .fadesl { - opacity: 0.6; } - - h4#pagination-truncated { - margin-top: 50px; } - - h4#pagination-large-count { - margin-top: 50px; } - - input[type="text"]::-moz-placeholder { - color: #767676; - font-family: "Omnes-ECOMP-W02-Italic", Arial; } - - input[type="text"]:focus { - z-index: 1000; } - - input[type="text"] + .reset-field { - background-color: #FFFFFF; - height: 90%; - top: 5%; } - - .btn-search:focus { - outline: 1px dotted #0574ac; } - - .field-group input:not([type="button"])[disabled] ~ .btn-search { - background-color: #eee; } - - .btn-search[class*="btn"] { - background-color: #FFFFFF; - background-size: 20px 20px; - border-radius: 0 1.5rem 1.5rem 0; - height: 3rem; - min-width: 4.4rem !important; - right: 0.15rem; - top: 0.15rem; - width: 4.4rem; } - - .search-suggestion-wrapper { - margin-bottom: 15px; - position: relative; } - .search-suggestion-wrapper .no-result { - padding: 0px 15px; } - - .search-suggestion-item { - color: #333333; - line-height: 4rem; - padding: 0 15px; - position: relative; - z-index: 1000; } - .search-suggestion-item:hover { - background-color: #e4e4e4; - cursor: pointer; } - .search-suggestion-item:focus { - background-color: #e4e4e4; - cursor: pointer; } - .search-suggestion-item a { - color: #333333; - text-decoration: none; } - - .btn-search i { - color: #767676; } - - input.b2b-search-input-field:focus ~ .btn-search > i, .btn-search:focus > i { - color: #0568ae; } - - button.btn-search[disabled] { - cursor: not-allowed; } - button.btn-search[disabled] i { - color: #767676; } - - .innershadow { - -webkit-background-blend-mode: mutilply; - box-shadow: 0 3px 0 2px rgba(0, 0, 0, 0.08); } - - li.module-groups { - cursor: default !important; - padding: 18px 15px 0px 15px; } - - li.module-list-item[selected]:before { - box-sizing: border-box; - display: inline-block; - font-size: 2em; - height: 1em; - position: absolute; - top: 20px; - right: 0px; - vertical-align: middle; - width: 1em; - color: #007a3e; } - - ul.module-optinalcta { - position: relative; - height: 44px; - margin-top: 0px; - border-bottom: 1px solid #d2d2d2; - border-left: 1px solid #d2d2d2; - border-right: 1px solid #d2d2d2; - border-radius: 0px 0px 6px 6px; } - ul.module-optinalcta li { - position: absolute; - bottom: 10px; } - ul.module-optinalcta a { - text-indent: 15px; - padding: 15px; } - - @keyframes spinner { - 0% { - transform: rotate(0deg); } - 100% { - transform: rotate(359deg); } } - - table { - max-width: 100%; - background-color: transparent; - border-collapse: collapse; - border-spacing: 0; - width: 100%; - } - - table caption { - text-align: left; } - - table thead th { - vertical-align: bottom; } - - table th, - table td { - padding: 19px 20px; - line-height: 1; - font-size: 1.4rem; - text-align: left; - vertical-align: top; - word-wrap: break-word; } - - table th { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - font-size: 1.6rem; - font-weight: normal; - color: #333333; - padding: 13px 20px; } - - - table tbody td:first-child { - border-left: none; } - - @media (max-width: 767px) { - table th, - table td { - padding: 19px 10px; } - table th:first-child, - table td:first-child { - padding: 19px 15px; } } - - .data-row-list ul > li { - background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20version%3D%221.1%22%20viewport%3D%220%200%201%201%22%20style%3D%22width%3A100%25%3B%20height%3A1px%3B%22%3E%3Cstyle%3Eline%7Bstroke%3Argba(153%2C153%2C153%2C1)%3Bstroke-width%3A2%3B%7D%3C%2Fstyle%3E%3Cline%20y2%3D%221%22%20y1%3D%221%22%20x1%3D%221%22%20x2%3D%22100%25%22%20stroke-dasharray%3D%221%2C%203%22%2F%3E%3C%2Fsvg%3E") !important; } - - table { - border-bottom: 1px solid #d2d2d2; } - - table th, - table td { - padding: 15px 15px 10px; } - - button .colors-off-msg { - position: relative; } - - - textarea, input { - color: #333; } - - .selectWrap::after { - align-items: center; - background-position: 7px 7px; - background-repeat: no-repeat; - background-size: auto 23px; - border-left: 1px solid transparent; - color: #0568ae; - display: flex; - font-size: 23px; - height: 36px; - margin-right: 0; - overflow: hidden; - position: absolute; - right: 0; - text-indent: 7px; - top: 0; - user-select: none; - width: 41px; - z-index: 0; - position: absolute !important; - display: flex !important; - } - - .card{ - border-radius: 5px; - } - - .card-header{ - height: 50px; - } - - .card-body{ - height: 150px; - } - - .card-footer{ - height: 50px; - } - - .dialog__close-btn { - border: 0; - background: #087ac2; - color: #ffffff; - position: absolute; - top: 8px; - right: 8px; - font-size: 1.2em; - display: block; - border: #087ac2 2px solid; - } - - .dialog{ - margin-top: 50px; - } - - .modalTitle{ - font-size: 35px; - } - - .defaultFontSize{ - font-size: 15px; - } - -.defaultFontSizeTextArea{ - font-size: 15px; - width: 200px; - height: 36px -} - - - .tab-content{ - margin-right: 20px; - /* background-color: #006496; */ - color: rgb(0, 0, 0); - } - - .btn-sm{ - width: 30px; - height: 15px; - font-size: 10px; - } - - -table, tr, td, th { - border: 0; - width: fit-content -} - - -mat-icon{ - color: #006496; - cursor: pointer; -} - -.matFormField{ - width:300px; -} - -.proceedWitLoadButton{ - font-size: 15px; - background: green; - color: white; - -} -.abortButton{ - font-size: 15px; - background: red; - color: white; -} - -.reportTitle{ - font-weight: bold; -} -textarea{ - display: block; - width: 800px; - padding: 8px; - padding-left: 15px; - height: 36px; -} - -.subtitle{ - color: #f44336 ; - padding-top: 5px; - font-size: 12px; -}
\ 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-form-fields/run-report-form-fields.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.html deleted file mode 100644 index fcfcf4d4..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.html +++ /dev/null @@ -1,159 +0,0 @@ -<span *ngIf="showSpinner" class="ecomp-spinner"></span> - -<div *ngIf="!showSpinner" class="stdForm"> - - <div class="tab-content"> - <table> - <tr> - <td> - <h6 class="reportTitle">{{reportName}}</h6> - <h6 class="reportsubTitle" class="subtitle">{{reportSubTitle}}</h6> - </td> - <td> - <mat-icon (click)="editReport(reportId)" *ngIf="allowEdit" - aria-hidden="false" aria-label="edit">edit - </mat-icon> - </td> - </tr> - </table> - <span *ngIf="showformFiledSpinner" class="ecomp-spinner"></span> - <br> - <div *ngIf="!showformFiledSpinner" class="stdForm"> - <div *ngIf="formFieldList" class="wrapper"> - <div *ngFor="let item of formFieldList; let i = index;"> - <div *ngIf="item.fieldType == 'TEXT' && item.validationType !== 'DATE'" - class="fieldWidth"> - <label class="labelWidth">{{item.fieldDisplayName}} :</label> <textarea placement="right" ngbTooltip="comma seperated" - [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" [(ngModel)]="formFieldListValueArr[i]" class="defaultFontSizeTextArea" id="item.fieldId"></textarea> - </div> - <div *ngIf="item.fieldType == 'LIST_BOX'" class="fieldWidth"> - <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label> - <select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" - class="browser-default custom-select defaultFontSize" required="required" - > - <option *ngFor="let listItem of item.formFieldValues" - class="defaultFontSize" value="{{listItem.id}}">{{listItem.name}}</option> - </select> - </div> - <div *ngIf="item.fieldType == 'LIST_MULTI_SELECT'" class="fieldWidth"> - <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label> - <mat-form-field> - <mat-select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" multiple> - <mat-option *ngFor="let listItem of item.formFieldValues" - value="{{listItem.id}}">{{listItem.name}}</mat-option> - </mat-select> - </mat-form-field> - </div> - <div *ngIf="item.validationType == 'DATE'" class="fieldWidth"> - <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label> - <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" - [matDatepicker]="picker" - class="defaultFontSize" matInput> - <mat-datepicker-toggle [for]="picker" matSuffix></mat-datepicker-toggle> - <mat-datepicker #picker></mat-datepicker> - </mat-form-field> - </div> - </div> - </div> - <div *ngIf="formFieldList" style="padding: 0.3em" > - <div *ngIf="unCommonGropusList.length > 0"> - <label>Select :</label><br/> - <br/> - <mat-radio-group ngmodel [(ngModel)]="groupSelectValue" - aria-label="Select an option" (ngModelChange) ="toggleChangeWhenCalledWithFromFields()"> - <div *ngFor="let group of formFieldGroupObjList; let i=index;" style="display: table-cell"> - <mat-radio-button value="{{group.name}}">{{group.name}}</mat-radio-button> - </div> - </mat-radio-group> - - </div> - </div> - - <div *ngIf="formFieldList" class="wrapper"> - <div *ngFor="let item of toggleFormFieldRenderArr; let i = index;"> - <div *ngIf="item.fieldType == 'TEXT' && item.validationType !== 'DATE'" class="fieldWidth"> - <label class="labelWidth">{{item.fieldDisplayName}} :</label><textarea placement="right" ngbTooltip="comma seperated" - [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" class="defaultFontSizeTextArea" id="item.fieldId"></textarea> - </div> - <div *ngIf="item.fieldType == 'LIST_BOX'" class="fieldWidth"> - <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label> - <select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" - class="browser-default custom-select defaultFontSize" required="required" - > - <option *ngFor="let listItem of item.formFieldValues" - class="defaultFontSize" value="{{listItem.id}}">{{listItem.name}}</option> - </select> - - </div> - <div *ngIf="item.fieldType == 'LIST_MULTI_SELECT'" class="fieldWidth"> - <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label> - <mat-form-field> - <mat-select [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" - multiple> - <mat-option *ngFor="let listItem of item.formFieldValues" - value="{{listItem.id}}">{{listItem.name}}</mat-option> - </mat-select> - </mat-form-field> - - <br/> - </div> - <div *ngIf="item.validationType == 'DATE'" class="fieldWidth"> - <label class="labelWidth" for="reportType">{{item.fieldDisplayName}} :</label> - <mat-form-field><input [ngModel]="formFieldListValueMap.get(item.fieldId)" (ngModelChange)="formFieldListValueMap.set(item.fieldId, $event)" [matDatepicker]="picker" - class="defaultFontSize" - matInput - value="{{item.formFieldValues[0][name]}}"> - <mat-datepicker-toggle - [for]="picker" matSuffix></mat-datepicker-toggle> - <mat-datepicker - #picker></mat-datepicker> - </mat-form-field> - </div> - <br/> - </div> - </div> - <div *ngIf="formFieldList" style="float: left;"> - <button (click)="runReport()" class="btn btn-alt btn-run" >Run Report</button> - <button (click)="resetFormFieldValues()" class="btn btn-alt btn-run" >Reset</button> - </div> - </div> - </div> -</div> -<div></div> - -<div *ngIf="isUpload" class="row isFileUploadDiv"> - <p> - <mat-form-field class="matFormField"> - <textarea matInput placeholder="Comments">{{uploadfileComments}}</textarea> - </mat-form-field> - </p> - <div class="btn-group row" style="margin: auto;"> - <p> - <button (click)="onProceedWithLoad()" *ngIf="isUpload" - class="btn btn-secondary proceedWitLoadButton" type="button">Proceed - With Load - </button> - <button *ngIf="isUpload" class="btn btn-secondary abortButton" - type="button">Abort - </button> - </p> - </div> -</div> -<br><br><br> - -<div *ngIf="navigateToRun"> - <!-- <app-run-dashboard-report [reportId]="reportId" [reportMode]="reportMode" [queryString]="getQueryString()" [DashboardReportObj]="DashboardReportObj"></app-run-dashboard-report> --> - <app-run-report [DashboardReportObj]="DashboardReportObj" [TriggerFFArr]="triggerFormFieldArr" - [hitCnt]="hitCnt" - [queryString]="getQueryString()" - [reportId]="reportId" [reportMode]="reportMode" [runAgain]="runReportAgain" [groupSelectValue]="groupSelectValue" [chartType]="chartType" ></app-run-report> -</div> - -<div *ngIf="error == true"> - <h1>Error Message:</h1> - <p>{{errorMessage}}</p> - <br/> - <h1>Stack Trace:</h1> - <p>{{stackTrace}}</p> - -</div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.spec.ts deleted file mode 100644 index 640128ce..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.spec.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import {FormsModule} from '@angular/forms'; -import { RunReportFormFieldsComponent } from './run-report-form-fields.component'; -import { CUSTOM_ELEMENTS_SCHEMA, Component } from '@angular/core'; -import {MatDatepickerModule} from '@angular/material/datepicker'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { RouterTestingModule } from '@angular/router/testing'; -import { RunService } from '../run.service'; -import { Observable } from 'rxjs/Observable'; -import 'rxjs/add/observable/of'; - -describe('RunReportFormFieldsComponent', () => { - let component: RunReportFormFieldsComponent; - let fixture: ComponentFixture<RunReportFormFieldsComponent>; - let formfield =[{"validationType":1},{},{}] ; - let runService: RunService; - let formFieldGroupObjList: {}[] = []; - let environment = [ - { - baseUrl: 'just for testing' - } - ] - - beforeEach(async(() => { - TestBed.configureTestingModule({ - schemas: [CUSTOM_ELEMENTS_SCHEMA], - imports: [FormsModule, MatDatepickerModule, HttpClientTestingModule, RouterTestingModule], - declarations: [ RunReportFormFieldsComponent ], - providers: [RunService] - }) - .compileComponents(); - runService = TestBed.get(RunService); - spyOn(runService, 'getDefinitionPageDetails').and.returnValue(Observable.of(environment)); - spyOn(runService, 'refreshFormFields').and.returnValue(Observable.of(environment)); - spyOn(runService, 'getFormFieldGroupsData').and.returnValue(Observable.of(environment)); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(RunReportFormFieldsComponent); - component = fixture.componentInstance; - component.formFieldList = formfield; - component.formFieldGroupObjList = formFieldGroupObjList; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should test convertDate method', () => { - component.convertDate("test"); - }); - - it('should test getQueryString methods', () => { - component.directCallQueryParams = 'abc'; - component.getQueryString(); - expect(component.getQueryString()).toEqual(component.directCallQueryParams); - - component.directCallQueryParams = ""; - component.getQueryString(); - expect(component.getQueryString()).toEqual(component.queryString); - }); - - it('should test showError method', () => { - component.showError('test'); - expect(component.errorMessage).toEqual('test'['errormessage']); - expect(component.stackTrace).toEqual('test'['stacktrace']); - expect(component.error).toEqual(true); - expect(component.showSpinner).toEqual(false); - }); - - it('should test showLabelFn method', () => { - component.showLabelFn(); - expect(component.showLabel).toEqual(component.showLabel); - }); - - it('should test runReport method', () => { - component.iSDashboardReport = "Dashboard"; - component.formFieldList.length = 1; - component.runReport(); - - expect(component.hitCnt).toBe(component.hitCnt++); - expect(component.reportMode).toBe('') - let spy = spyOn(component, 'generateQueryString'); - component.generateQueryString(); - expect(component.generateQueryString).toHaveBeenCalled(); - expect(component.showSpinner).toBe(false); - - component.iSDashboardReport = "Dashboard"; - component.formFieldList.length = 0; - component.runReport(); - - expect(component.reportMode).toBe(''); - - component.iSDashboardReport = "Dashboard"; - component.runReport(); - expect(component.showSpinner).toBe(false); - expect(component.navigateToRun).toBe(true); - - - }); - - it('should test ngDoCheck method', () =>{ - component.formFieldList != undefined; - component.oldGroupSelectValue = "test"; - component.groupSelectValue = "testing"; - spyOn(component, 'ngDoCheck').and.callThrough(); - component.ngDoCheck(); - expect(component.ngDoCheck).toHaveBeenCalled(); - expect(component.oldGroupSelectValue).toBe(component.groupSelectValue); - }); - - it('should test generateQueryString method',() => { - component.generateQueryString(); - }) - - it('should test ngOnInit method', () => { - spyOn(component, 'ngOnInit').and.callThrough(); - component.ngOnInit(); - expect(component.ngOnInit).toHaveBeenCalled(); - }); - -});
\ 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-form-fields/run-report-form-fields.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.ts deleted file mode 100644 index c0856b44..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-form-fields/run-report-form-fields.component.ts +++ /dev/null @@ -1,800 +0,0 @@ -import {Component, OnInit, Input, SimpleChange, SystemJsNgModuleLoader, OnDestroy} from '@angular/core'; -import {RunService} from '../run.service'; -import {ActivatedRoute, Router} from '@angular/router'; -import {inlineInterpolate} from '@angular/core/src/view'; -import {copyStyles} from '@angular/animations/browser/src/util'; -import {split} from 'ts-node'; -import * as cloneDeep from 'lodash/cloneDeep'; - -@Component({ - selector: 'app-run-report-form-fields', - templateUrl: './run-report-form-fields.component.html', - styleUrls: ['./run-report-form-fields.component.css'] -}) -export class RunReportFormFieldsComponent implements OnInit, OnDestroy { - @Input('formFieldList') formFieldList: {}[]; - @Input('reportId') reportId: string; - staticFormFieldList: {}[] = []; - formFieldListValueArr: any[]; - saveFormFieldGroups: any[]; - finalQueryParamsObj: {}; - navigateToRun: boolean; - reportMode: string; - queryString: string; - reportName: string; - reportSubTitle: string; - showSpinner: boolean; - showLabel: boolean; - runDashboardReport: boolean; - DashboardReportObj: {}[] = []; - triggerFormFieldArr = []; - initialObject = {}; - formFieldGroupObjList: {}[] = []; - toggleFormFieldRenderArr: {}[] = []; - groupSelectValue = ''; - oldGroupSelectValue = ''; - unCommonCnt = 0; - commonCount = 0; - totalCommonCount = 0; - totalCount = 0; - errorMessage = ''; - stackTrace = ''; - error = false; - iSDashboardReport = ''; - hitCnt = 0; - directCallQueryParams: any = ''; - calledWithFormFields = false; - showformFiledSpinner = false; - actualformFieldValues: any[]; - allowEdit: boolean; - runReportAgain: boolean; - tempFieldValues = []; - firstRun = false; - saveFormFieldListValueArr: any[]; - saveGroupSelectValue = ''; - avoidDoCheck = false; - toolTipPosition = 'right'; - isResetAllowed: boolean; - save: {}[]; - unCommonGropusList: any[]; - commonFormFields: any[]; - formFieldListValueMap: any; - saveFormFieldListValueMap: any; - chartType = ''; - - constructor(private _runService: RunService, private _route: ActivatedRoute, private _router: Router) { - this.formFieldListValueArr = []; - this.saveFormFieldListValueArr = []; - this.saveFormFieldGroups = []; - this.finalQueryParamsObj = {}; - this.navigateToRun = false; - this.queryString = ''; - this.showSpinner = false; - this.showLabel = false; - this.runDashboardReport = false; - this.showformFiledSpinner = false; - this.runReportAgain = false; - this.tempFieldValues = []; - this.isResetAllowed = false; - this.unCommonGropusList = []; - this.commonFormFields = []; - this.formFieldListValueMap = new Map<any, any>(); - this.saveFormFieldListValueMap = new Map<any, any>(); - this.chartType = ''; - } - - ngOnDestroy(): void { - this.createNewObject(); - this.showSpinner = false; - } - - createNewObject() { - this.staticFormFieldList = []; - this.formFieldListValueArr = []; - this.saveFormFieldGroups = []; - this.saveFormFieldListValueArr = []; - this.finalQueryParamsObj = {}; - this.navigateToRun = false; - this.reportMode = ''; - this.queryString = ''; - this.reportName = ''; - this.reportSubTitle=''; - this.showSpinner = true; - this.showLabel = false; - this.runDashboardReport = false; - this.DashboardReportObj = []; - this.triggerFormFieldArr = []; - this.initialObject = {}; - this.formFieldGroupObjList = []; - this.toggleFormFieldRenderArr = []; - this.groupSelectValue = ''; - this.oldGroupSelectValue = ''; - this.unCommonCnt = 0; - this.totalCommonCount = 0; - this.commonCount = 0; - this.totalCount = 0; - this.errorMessage = ''; - this.stackTrace = ''; - this.error = false; - this.iSDashboardReport = ''; - this.hitCnt = 0; - this.directCallQueryParams = ''; - this.calledWithFormFields = false; - this.showformFiledSpinner = false; - this.allowEdit = false; - this.runReportAgain = false; - this.isResetAllowed = false; - this.unCommonGropusList = []; - this.commonFormFields = []; - this.formFieldListValueMap = new Map<any, any>(); - this.saveFormFieldListValueMap = new Map<any, any>(); - this.chartType = ''; - } - - ngOnInit() { - - this.showSpinner = true; - this.navigateToRun = false; - this._route.params.subscribe(params => { - this.reportId = params['reportId']; - this.createNewObject(); - this.groupSelectValue = params['groupSelectValue']; - if (this.groupSelectValue === undefined) { - this.groupSelectValue = ''; - } - if (params['queryParameters']) { - this.directCallQueryParams = params['queryParameters']; - this.calledWithFormFields = true; - this.populateQueryParams(params['queryParameters']); - } - this.loadPage(); - }); - - } - - populateQueryParams(queryParams: any) { - this.actualformFieldValues = this.directCallQueryParams.substring(1, this.directCallQueryParams.length).split('&'); - for (const ff of this.actualformFieldValues) { - const formfiledArray = ff.split('='); - const formFieldId = formfiledArray[0]; - const formFieldObj = formfiledArray[1]; - this.finalQueryParamsObj[formFieldId] = formFieldObj; - } - this.queryString = this.directCallQueryParams; - } - - loadPage() { - this._runService.getDefinitionPageDetails(+this.reportId) - .subscribe((responseDefPage) => { - this.reportName = responseDefPage['reportName']; - this.reportSubTitle = responseDefPage['reportSubTitle']; - this.chartType = responseDefPage['chartType']; - if (responseDefPage['reportType'] !== 'Dashboard') { - if (this.calledWithFormFields == false) { - this._runService.getReportData(this.reportId) - .subscribe((response) => { - if (response['errormessage']) { - this.allowEdit = response['allowEdit']; - this.showError(response); - } else { - this.allowEdit = response['allowEdit']; - this.reportName = response['reportName']; - if (response['formFieldList'].length > 0) { - this.fetchAndPopulateFormFields(response, this.reportId); - this.showformFiledSpinner = true; - } else { - this.formFieldList = response['formFieldList']; - this.reportMode = 'Regular'; - this.navigateToRun = true; - this.showformFiledSpinner = false; - - } - this.showSpinner = false; - } - }); - } else if (this.calledWithFormFields == true) { - this._runService.getReportData(this.reportId) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - } else { - this.error = false; - this.reportName = response['reportName']; - this.allowEdit = response['allowEdit']; - if (response['formFieldList'].length > 0) { - this.setDefaultFieldGroupValueForNonSelected(response['formFieldList']); - this.generateQueryString(); - this.fetchAndPopulateFormFields(response, this.reportId); - this.formFieldListValueMap = new Map<any, any>(); - for (const ff of response['formFieldList']) { - if (this.finalQueryParamsObj[ff.fieldId]) { - if (ff.validationType == 'DATE') { - const dateVal = this.finalQueryParamsObj[ff.fieldId]; - this.formFieldListValueMap.set(ff.fieldId, new Date(dateVal.toString().replace(/%2F/g, '/'))); - } else if (ff.fieldType == 'LIST_MULTI_SELECT') { - const multiSelectArray = []; - let multiVal = this.finalQueryParamsObj[ff.fieldId]; - multiVal = multiVal.toString().replace(/%2F/g, '/'); - multiVal = multiVal.toString().replace('+', ' '); - multiSelectArray.push(multiVal); - this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); - } else { - let multiVal = this.finalQueryParamsObj[ff.fieldId]; - multiVal = multiVal.toString().replace(/%2F/g, '/'); - multiVal = multiVal.toString().split('+').join(' '); - this.formFieldListValueMap.set(ff.fieldId, multiVal); - } - } else { - if (ff.fieldType == 'LIST_MULTI_SELECT') { - const multiSelectArray = []; - this.formFieldListValueMap.set(ff.fieldId, multiSelectArray); - } else { - this.formFieldListValueMap.set(ff.fieldId, ''); - } - } - } - this.error = false; - this.navigateToRun = true; - this.showformFiledSpinner = true; - this.directCallQueryParams = ''; - } else { - this.reportMode = 'Regular'; - this.navigateToRun = true; - this.showformFiledSpinner = false; - - } - this.showSpinner = false; - - } - }); - } else { - this.reportMode = 'FormField'; - this.navigateToRun = true; - this.showSpinner = false; - this.showformFiledSpinner = true; - } - } else { - if (this.calledWithFormFields == false) { - this.iSDashboardReport = 'Dashboard'; - this.reportName = responseDefPage['reportName']; - this.DashboardReportObj = JSON.parse(responseDefPage['dashboardLayoutJSON']); - let i = 0; - let subReportId = ''; - const tempDashboardArray = []; - for (let dash = 0; dash < this.DashboardReportObj.length ; dash++) { - if (this.DashboardReportObj[dash]['hasContent']['hideDisplay'] !== true) { - tempDashboardArray.push(this.DashboardReportObj[dash]); - } - } - this.DashboardReportObj = []; - this.DashboardReportObj = tempDashboardArray; - while (this.DashboardReportObj[i]) { - subReportId = this.DashboardReportObj[i]['hasContent']['id'].split('#')[1]; - i++; - break; - } - this._runService.getReportData(subReportId) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - this.allowEdit = response['allowEdit']; - } else { - this.allowEdit = response['allowEdit']; - if (response['formFieldList'].length > 0) { - this.fetchAndPopulateFormFields(response, subReportId); - } else { - this.navigateToRun = true; - } - this.runDashboardReport = true; - this.showSpinner = false; - this.showformFiledSpinner = true; - } - }); - this.showSpinner = false; - this.showformFiledSpinner = true; - } else if (this.calledWithFormFields == true) { - this.iSDashboardReport = 'Dashboard'; - this.reportName = responseDefPage['reportName']; - this.DashboardReportObj = JSON.parse(responseDefPage['dashboardLayoutJSON']); - const tempDashboardArray = []; - for (let dash = 0; dash < this.DashboardReportObj.length ; dash++) { - if (this.DashboardReportObj[dash]['hasContent']['hideDisplay'] !== true) { - tempDashboardArray.push(this.DashboardReportObj[dash]); - } - } - this.DashboardReportObj = []; - this.DashboardReportObj = tempDashboardArray; - let subReportId = ''; - for (const dashboard of this.DashboardReportObj) { - let temp = ''; - temp = dashboard['hasContent']['id'].split('#')[1]; - subReportId = temp; - this.directCallQueryParams = ''; - this.runDashboardReport = true; - this.navigateToRun = true; - this.showSpinner = false; - } - } - } - }); - } - - toggleChangeWhenCalledWithFromFields(){ - this.calledWithFormFields = false; - } - - async ngDoCheck() { - - if (this.formFieldList !== undefined) { - - if (this.groupSelectValue !== this.oldGroupSelectValue) { - // this.formFieldListValueArr.splice(this.commonCount-1, this.formFieldListValueArr.length) - this.removePrevioustoggleGroupData(); - this.oldGroupSelectValue = this.groupSelectValue; - this.formFieldGroupObjList = []; - this.saveFormFieldGroups = []; - this.formFieldGroupObjList = cloneDeep(this.save); - this.saveFormFieldGroups = cloneDeep(this.save); - for (const formFieldGroupObjItem of this.formFieldGroupObjList) { - if (formFieldGroupObjItem['name'] == this.groupSelectValue) { - this.toggleFormFieldRenderArr = formFieldGroupObjItem['formFieldList']; - } - - } - if (this.toggleFormFieldRenderArr.length > 0) { - for (let i = 0; i < this.toggleFormFieldRenderArr.length; i++) { - const formFieldObj = this.toggleFormFieldRenderArr[i]; - if (formFieldObj['triggerOtherFormFields'] === true) { - const formFieldId = formFieldObj['fieldId']; - this.triggerFormFieldArr.push(formFieldId); - this.initialObject[formFieldId] = '1'; - this.finalQueryParamsObj[formFieldId] = '1'; - } - } - } - - if(this.calledWithFormFields != true){ - for (const formFieldGroupObjItem of this.saveFormFieldGroups) { - if (formFieldGroupObjItem['name'] == this.groupSelectValue) { - this.toggleFormFieldRenderArr = formFieldGroupObjItem['formFieldList']; - for (let ffGrpValue = 0; ffGrpValue < formFieldGroupObjItem['formFieldList'].length; ffGrpValue++) { - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length > 0) { - for (let ffValue = 0; ffValue < formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length; ffValue++) { - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldType'] == 'LIST_BOX' && formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length > 0) { - let isAdded = false; - for (let ffValue = 0; ffValue < formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length; ffValue++) { - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['defaultValue'] == true) { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['id']); - isAdded = true; - } - } - if (!isAdded) { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], ''); - } - } else if ((formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldType'] == 'LIST_MULTI_SELECT' || formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldType'] == 'TEXT') && formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length > 0) { - let isAdded = false; - for (let ffValue = 0; ffValue < formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length; ffValue++) { - - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['defaultValue'] == true) { - const multiSelectArray = []; - multiSelectArray.push(formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['id']); - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], multiSelectArray); - isAdded = true; - } - } - if (!isAdded) { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], ''); - } - } else if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldType'] == 'Select Field Type' && formFieldGroupObjItem['formFieldList'][ffGrpValue]['validationType'] == 'NONE') { - let isAdded = false; - for (let ffValue = 0; ffValue < formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length; ffValue++) { - - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['defaultValue'] == true) { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['id']); - isAdded = true; - } - } - if (!isAdded) { - this.formFieldListValueArr[this.totalCommonCount + ffGrpValue] = ''; - } - } else { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], ''); - } - } - } else { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], ''); - } - } - } - } - } - if (this.formFieldGroupObjList.length > 0) { - for (let ffl = 0; ffl < this.formFieldList.length; ffl++) { - for (let ffgl = 0; ffgl < this.formFieldGroupObjList.length; ffgl++) { - const inList = this.formFieldGroupObjList[ffgl]['formFieldList']; - - for (let inl = 0; inl < inList.length; inl++) { - let cntr = 0; - if (inList[inl]['fieldId'] == this.formFieldList[ffl]['fieldId']) { - cntr++; - } - if (cntr == 0) { - this.finalQueryParamsObj[inList[inl]['fieldId']] = '-1'; - } - } - - } - } - } - } - for (const tffr of this.toggleFormFieldRenderArr) { - if (this.formFieldListValueMap.get(tffr['fieldId']) || this.formFieldListValueMap.get(tffr['fieldId']) == "") { - if (tffr['validationType'] == 'DATE') { - this.finalQueryParamsObj[tffr['fieldId']] = this.convertDate(this.formFieldListValueMap.get(tffr['fieldId'])); - } else if (this.formFieldListValueMap.get(tffr['fieldId']) == "") { - - if (tffr['fieldType'] == 'LIST_MULTI_SELECT') { - let multiSelectValue = ''; - for (let ffValue = 0; ffValue < tffr['formFieldValues'].length; ffValue++) { - multiSelectValue = multiSelectValue + tffr['formFieldValues'][ffValue]['id'] + '|'; - } - if (multiSelectValue != '') { - multiSelectValue = multiSelectValue.substring(0, multiSelectValue.length - 1); - } - this.finalQueryParamsObj[tffr['fieldId']] = multiSelectValue; - - } else { - this.finalQueryParamsObj[tffr['fieldId']] = ''; - } - } else { - this.finalQueryParamsObj[tffr['fieldId']] = this.formFieldListValueMap.get(tffr['fieldId']); - for (const trigElement of this.triggerFormFieldArr) { - if (this.initialObject[trigElement] !== this.finalQueryParamsObj[trigElement]) { - this.initialObject[trigElement] = this.finalQueryParamsObj[trigElement]; - this.generateQueryString(); - await this.delay(1000); - console.log('Afterp: ' + new Date().toString()); - this._runService.refreshFormFields(this.reportId, this.queryString) - .subscribe((responseRefreshFF) => { - for (let rrff = 0; rrff < responseRefreshFF['formFieldList'].length; rrff++) { - for (let innerTFRR = 0; innerTFRR < this.toggleFormFieldRenderArr.length; innerTFRR++) { - if (responseRefreshFF['formFieldList'][rrff]['fieldId'] == this.toggleFormFieldRenderArr[innerTFRR]['fieldId']) { - this.toggleFormFieldRenderArr[innerTFRR] = responseRefreshFF['formFieldList'][rrff]; - } - } - } - }); - this.initialObject[trigElement] = this.finalQueryParamsObj[trigElement]; - } - } - - } - } - } - - if (this.reportMode !== 'Regular' && this.reportMode !== 'Dashboard') { - for (const ffvalue of this.formFieldList) { - if (this.formFieldListValueMap.get(ffvalue['fieldId'])) { - if (ffvalue['validationType'] == 'DATE') { - this.finalQueryParamsObj[ffvalue['fieldId']] = this.convertDate(this.formFieldListValueMap.get(ffvalue['fieldId'])); - } else { - this.finalQueryParamsObj[ffvalue['fieldId']] = this.formFieldListValueMap.get(ffvalue['fieldId']); - for (const trigElement of this.triggerFormFieldArr) { - if (this.initialObject[trigElement] !== this.finalQueryParamsObj[trigElement]) { - this.initialObject[trigElement] = this.finalQueryParamsObj[trigElement]; - this.generateQueryString(); - await this.delay(1000); - console.log('Afterp: ' + new Date().toString()); - this._runService.refreshFormFields(this.reportId, this.queryString) - .subscribe((responseRefreshFF) => { - - for (let rrff = 0; rrff < responseRefreshFF['formFieldList'].length; rrff++) { - for (let innerFFL = 0; innerFFL < this.formFieldList.length; innerFFL++) { - if (responseRefreshFF['formFieldList'][rrff]['fieldId'] == this.formFieldList[innerFFL]['fieldId']) { - this.formFieldList[innerFFL] = responseRefreshFF['formFieldList'][rrff]; - } - } - } - }); - } - } - - } - } - } - - } - } - if (this.firstRun) { - this.saveGroupSelectValue = this.groupSelectValue; - this.saveFormFieldListValueMap = cloneDeep(this.formFieldListValueMap); - } - this.firstRun = false; - } - - convertDate(str) { - const date = new Date(str), - mnth = ('0' + (date.getMonth() + 1)).slice(-2), - day = ('0' + date.getDate()).slice(-2); - return [mnth, day, date.getFullYear()].join('/'); - } - - getQueryString() { - if (this.directCallQueryParams !== '') { - return this.directCallQueryParams; - } else { - return this.queryString; - } - } - - fetchAndPopulateFormFields(respObj: any, ffReportId: string) { - this._runService.getFormFieldGroupsData(ffReportId) - .subscribe((responseFormFieldGroups) => { - this.firstRun = true; - this.showformFiledSpinner = false; - this.formFieldGroupObjList = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']); - this.saveFormFieldGroups = JSON.parse(responseFormFieldGroups['formFieldGroupsJSON']); - this.formFieldList = respObj['formFieldList']; - this.staticFormFieldList = respObj['formFieldList']; - this.reportMode = 'FormField'; - this.totalCount = this.formFieldList.length; - if (this.formFieldGroupObjList !== null) { - for (let ffgl = 0; ffgl < this.formFieldGroupObjList.length; ffgl++) { - for (let itemFFGL = 0; itemFFGL < this.formFieldGroupObjList[ffgl]['formFieldList'].length; itemFFGL++) { - const formFieldGroupItem = this.formFieldGroupObjList[ffgl]['formFieldList'][itemFFGL]; - for (let fflg = 0; fflg < this.formFieldList.length; fflg++) { - if (formFieldGroupItem['id'] == this.formFieldList[fflg]['fieldId']) { - this.formFieldGroupObjList[ffgl]['formFieldList'][itemFFGL] = this.formFieldList[fflg]; - this.saveFormFieldGroups[ffgl]['formFieldList'][itemFFGL] = this.formFieldList[fflg]; - - if (this.formFieldList[fflg]['triggerOtherFormFields'] === true) { - const formFieldId = this.formFieldList[fflg]['fieldId']; - this.triggerFormFieldArr.push(formFieldId); - this.initialObject[formFieldId] = []; - this.finalQueryParamsObj[formFieldId] = []; - } - this.formFieldList.splice(fflg, 1); - this.unCommonGropusList.push(formFieldGroupItem); - this.unCommonCnt++; - } - } - } - } - } - if(this.calledWithFormFields != true){ - for (let checkRadio = 0; checkRadio < this.formFieldList.length; checkRadio++) { - if (this.formFieldList[checkRadio]['fieldDisplayName'] == 'selectCriteria') { - for (let ffValue = 0; ffValue < this.formFieldList[checkRadio]['formFieldValues'].length; ffValue++) { - if (this.formFieldList[checkRadio]['formFieldValues'][ffValue]['defaultValue'] == true) { - this.groupSelectValue = this.formFieldList[checkRadio]['formFieldValues'][ffValue]['name']; - } - } - this.oldGroupSelectValue = this.groupSelectValue; - } - } - } - this.commonCount = this.totalCount - this.unCommonCnt; - this.totalCommonCount = this.commonCount; - console.log(this.unCommonGropusList); - console.log(this.formFieldList); - for (let i = 0; i < this.formFieldList.length; i++) { - const formFieldObj = this.formFieldList[i]; - if (formFieldObj['formFieldValues'] != null && this.calledWithFormFields != true) { - if (formFieldObj['validationType'] == 'DATE' && formFieldObj['formFieldValues'].length > 0) { - const date = formFieldObj['formFieldValues'][0]['id']; - this.formFieldListValueMap.set(formFieldObj['fieldId'], new Date(date)); - } else if (formFieldObj['fieldType'] == 'LIST_BOX' && formFieldObj['formFieldValues'].length > 0) { - let isAdded = false; - for (let ffValue = 0; ffValue < formFieldObj['formFieldValues'].length; ffValue++) { - if (formFieldObj['formFieldValues'][ffValue]['defaultValue'] == true) { - this.formFieldListValueMap.set(formFieldObj['fieldId'], formFieldObj['formFieldValues'][ffValue]['id']); - isAdded = true; - } - } - if (!isAdded) { - this.formFieldListValueMap.set(formFieldObj['fieldId'], ''); - } - } else if ((formFieldObj['fieldType'] == 'LIST_MULTI_SELECT' || formFieldObj['fieldType'] == 'TEXT') && formFieldObj['formFieldValues'].length > 0) { - let isAdded = false; - for (let ffValue = 0; ffValue < formFieldObj['formFieldValues'].length; ffValue++) { - - if (formFieldObj['formFieldValues'][ffValue]['defaultValue'] == true) { - const multiSelectArray = []; - multiSelectArray.push(formFieldObj['formFieldValues'][ffValue]['id']); - this.formFieldListValueMap.set(formFieldObj['fieldId'], multiSelectArray); - isAdded = true; - } - } - if (!isAdded) { - this.formFieldListValueMap.set(formFieldObj['fieldId'], ''); - } - } else if (formFieldObj['fieldDisplayName'] == 'DefaultRadio') { - this.formFieldListValueMap.set(formFieldObj['fieldId'], ''); - - } else { - this.formFieldListValueMap.set(formFieldObj['fieldId'], ''); - } - } - - if (formFieldObj['triggerOtherFormFields'] === true) { - const formFieldId = formFieldObj['fieldId']; - this.triggerFormFieldArr.push(formFieldId); - this.initialObject[formFieldId] = []; - this.finalQueryParamsObj[formFieldId] = []; - } - } - - console.log(this.formFieldListValueMap); - - if(this.calledWithFormFields != true){ - if (this.formFieldGroupObjList !== null) { - for (const formFieldGroupObjItem of this.formFieldGroupObjList) { - if (formFieldGroupObjItem['name'] == this.groupSelectValue) { - this.toggleFormFieldRenderArr = formFieldGroupObjItem['formFieldList']; - for (let ffGrpValue = 0; ffGrpValue < formFieldGroupObjItem['formFieldList'].length; ffGrpValue++) { - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length > 0) { - for (let ffValue = 0; ffValue < formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'].length; ffValue++) { - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['defaultValue'] == true) { - if (formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldType'] == 'LIST_MULTI_SELECT') { - const multiSelectArray = []; - multiSelectArray.push(formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['id']); - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], multiSelectArray); - } else { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], formFieldGroupObjItem['formFieldList'][ffGrpValue]['formFieldValues'][ffValue]['id']); - } - } - } - } else { - this.formFieldListValueMap.set(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId'], ''); - - } - } - } - - } - } - } - console.log('finalMap', this.formFieldListValueMap); - if (this.formFieldGroupObjList !== null) { - if (this.formFieldGroupObjList.length > 0) { - for (let ffl = 0; ffl < this.formFieldList.length; ffl++) { - for (let ffgl = 0; ffgl < this.formFieldGroupObjList.length; ffgl++) { - const inList = this.formFieldGroupObjList[ffgl]['formFieldList']; - - for (let inl = 0; inl < inList.length; inl++) { - let cntr = 0; - if (inList[inl]['fieldId'] == this.formFieldList[ffl]['fieldId']) { - cntr++; - } - if (cntr == 0) { - this.finalQueryParamsObj[inList[inl]['fieldId']] = '-1'; - } - } - - } - } - } - } - this.save = cloneDeep(this.formFieldGroupObjList); - }); - } - - generateQueryString() { - - this.queryString = ''; - for (let k = 0; k < Object.keys(this.finalQueryParamsObj).length; k++) { - if (typeof (this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]]) == 'object') { - const key = Object.keys(this.finalQueryParamsObj)[k]; - let qstr = ''; - let l = 0; - while (this.finalQueryParamsObj[key][l]) { - if (l === 0) { - qstr = qstr + this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]][l]; - } else { - qstr = qstr + '|' + this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]][l]; - } - l++; - } - if (qstr !== '') { - this.queryString = this.queryString + '&' + Object.keys(this.finalQueryParamsObj)[k] + '=' + qstr; - } - } else { - if (typeof (this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]]) == 'string') { - this.queryString = this.queryString + '&' + Object.keys(this.finalQueryParamsObj)[k] + '=' + this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]]; - } else { - this.queryString = this.queryString + '&' + Object.keys(this.finalQueryParamsObj)[k] + '=' + this.finalQueryParamsObj[Object.keys(this.finalQueryParamsObj)[k]]; - } - } - - } - - } - - showError(Errresponse: any) { - this.errorMessage = Errresponse['errormessage']; - this.stackTrace = Errresponse['stacktrace']; - this.error = true; - this.showSpinner = false; - } - - runReport() { - this.hitCnt++; - this.showSpinner = true; - if (this.iSDashboardReport !== 'Dashboard') { - if (this.formFieldList.length > 0) { - this.reportMode = 'FormField'; - this.generateQueryString(); - } else { - this.reportMode = 'Regular'; - } - this.showSpinner = false; - } else { - this.generateQueryString(); - this.showSpinner = false; - } - this.runReportAgain = !this.runReportAgain; - this.navigateToRun = true; - } - - editReport(reportId: string) { - this._router.navigate(['v2/app/reports', 'Edit', reportId]); - } - - showLabelFn() { - this.showLabel = !this.showLabel; - } - - setDefaultFieldGroupValueForNonSelected(formFieldsList: any) { - this.tempFieldValues = []; - const map = new Map<string, string>(); - for (const value in this.finalQueryParamsObj) { - map.set(value, this.finalQueryParamsObj[value]); - } - for (const ffl of formFieldsList) { - if (!map.get(ffl['fieldId']) && ffl['formFieldValues'].length === 1) { - this.tempFieldValues = ffl['formFieldValues']; - if (ffl['fieldDisplayName'] == this.tempFieldValues[0]['name']) { - this.finalQueryParamsObj[ffl['fieldId']] = '-1'; - } - } - } - } - - resetFormFieldValues() { - sessionStorage.clear(); - const myItem = localStorage.getItem('id'); - localStorage.clear(); - localStorage.setItem('id', myItem); - if (this.formFieldGroupObjList != null) { - this._router.navigateByUrl('v2/app/refresh', {skipLocationChange: true}).then(() => - this._router.navigate(['v2/app/run', this.reportId])); - } else { - this.avoidDoCheck = true; - this.formFieldListValueMap = new Map<any, any>(); - this.finalQueryParamsObj = []; - if (this.calledWithFormFields == false) { - this.formFieldListValueMap = cloneDeep(this.saveFormFieldListValueMap); - } - - } - } - - private delay(ms: number) { - return new Promise(resolve => setTimeout(resolve, ms)); - } - - private removePrevioustoggleGroupData() { - for (const formFieldGroupObjItem of this.formFieldGroupObjList) { - if (formFieldGroupObjItem['name'] == this.oldGroupSelectValue) { - for (let ffGrpValue = 0; ffGrpValue < formFieldGroupObjItem['formFieldList'].length; ffGrpValue++) { - this.finalQueryParamsObj[formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId']] = '-1'; - this.formFieldListValueMap.delete(formFieldGroupObjItem['formFieldList'][ffGrpValue]['fieldId']); - this.triggerFormFieldArr= []; - } - - } - } - } -} - - diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set-datasource.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set-datasource.ts deleted file mode 100644 index a6a515b5..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set-datasource.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { DataSource } from '@angular/cdk/collections'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; -import { map } from 'rxjs/operators'; -import { Observable, of as observableOf, merge } from 'rxjs'; - -// TODO: Replace this with your own data model type -export interface RunReportFinalTableItem { - -} - -// TODO: replace this with real data from your application - - -/** - * Data source for the RunReportFinalTable view. This class should - * encapsulate all logic for fetching and manipulating the displayed data - * (including sorting, pagination, and filtering). - */ -export class RunReportFinalTableDataSource extends DataSource<RunReportFinalTableItem> { - data: RunReportFinalTableItem[]; - paginator: MatPaginator; - sort: MatSort; - - constructor() { - super(); - } - - /** - * Connect this data source to the table. The table will only update when - * the returned stream emits new items. - * @returns A stream of the items to be rendered. - */ - connect(): Observable<RunReportFinalTableItem[]> { - // Combine everything that affects the rendered data into one update - // stream for the data-table to consume. - const dataMutations = [ - observableOf(this.data), - this.paginator.page, - this.sort.sortChange - ]; - - return merge(...dataMutations).pipe(map(() => { - return this.getPagedData(this.getSortedData([...this.data])); - })); - } - - /** - * Called when the table is being destroyed. Use this function, to clean up - * any open connections or free any held resources that were set up during connect. - */ - disconnect() {} - - /** - * Paginate the data (client-side). If you're using server-side pagination, - * this would be replaced by requesting the appropriate data from the server. - */ - private getPagedData(data: RunReportFinalTableItem[]) { - const startIndex = this.paginator.pageIndex * this.paginator.pageSize; - return data.splice(startIndex, this.paginator.pageSize); - } - - /** - * Sort the data (client-side). If you're using server-side sorting, - * this would be replaced by requesting the appropriate data from the server. - */ - private getSortedData(data: RunReportFinalTableItem[]) { - if (!this.sort.active || this.sort.direction === '') { - return data; - } - - return data.sort((a, b) => { - const isAsc = this.sort.direction === 'asc'; - switch (this.sort.active) { - // case 'name': return compare(a.name, b.name, isAsc); - // case 'id': return compare(+a.id, +b.id, isAsc); - default: return 0; - } - }); - } -} - -/** Simple sort comparator for example ID/Name columns (for client-side sorting). */ -function compare(a, b, isAsc) { - return (a < b ? -1 : 1) * (isAsc ? 1 : -1); -} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.css deleted file mode 100644 index d74a7bd4..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.css +++ /dev/null @@ -1,201 +0,0 @@ -/* .left { - width: auto; - float: left; - text-align: right; -} -.right { - width: auto; - - float: left; -} */ - -mat-icon{ - color: #006496; - cursor: pointer; -} - -/* .tab-pane{ - padding-right: 130px; - padding-left: 120px; - color: rgba(0, 0, 0, 0.603) -} */ - -.boxMargin{ - - width: auto; -} - -mat-button-toggle{ - display: block; - width: 400px; - border-radius: 5px; -} - -input { - width: 400px; - height: 20px; -} - -.tab-content{ - margin-right: 20px; - /* background-color: #006496; */ - color: rgb(0, 0, 0); -} - -.stdForm{ - margin-left: 20px; -} - -.field-group { - position: relative; - display: block; -} - -label + .field-group, label + .input-append, label + .row, label + .row-nowrap, label + .form-row { - margin-top: 5px; -} - -textarea { - display: block; - width: 400px; - max-width: 50%; - padding: 15px; -} - -select{ - display: block; - width: 400px; - max-width: 400px; - padding: 15px; - background-color: #cfcfcf7a -} - -.webform-component-my-select select { - height: 200px; -} - -.checkbox .skin { - background-color: #fff; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - width: 24px; - position: absolute; - left: 0; - top: 0; -} - -i, em { - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; -} - - - -.card{ - border-radius: 5px; -} - -.card-header{ - height: 50px; -} - -.card-body{ - height: 150px; -} - -.card-footer{ - height: 50px; -} - -.dialog__close-btn { - border: 0; - background: #087ac2; - color: #ffffff; - position: absolute; - top: 8px; - right: 8px; - font-size: 1.2em; - display: block; - border: #087ac2 2px solid; -} - -.modalTitle{ - font-size: 35px; -} - - -.full-width-table { - width: 100%; -} - - -.app-data-table { - margin-top: 80px; - /* margin-left: 250px; - margin-right: 250px; */ - /* overflow: scroll; */ -} - -.app-data-table1 { - margin-left: 150px; - margin-right: 150px; -} - -th{ - /* background-color: #006496; */ - color: rgb(0, 0, 0); - font-size: 15px; - border-radius: 2px; - height: 35px; -} - -tr:nth-child(even) { - /* background-color: #dddddd; */ - font-size: 2px; - height: 35px; - border-radius: 4px; - -} - -tr:nth-child(odd) { - font-size: 2px; - height: 35px; - border-radius: 4px; -} - - -.card{ - border-radius: 5px; - -} - -.card-header{ - height: 50px; -} - -.card-body{ - height: 150px; -} - -.card-footer{ - height: 50px; - margin-right: 10px; -} - -.dialog__close-btn { - border: 0; - background: #087ac2; - color: #ffffff; - position: absolute; - top: 8px; - right: 8px; - font-size: 1.2em; - display: block; - border: #087ac2 2px solid; -} - -.modalTitle{ - font-size: 35px; -}
\ 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-result-set/run-report-result-set.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.html deleted file mode 100644 index 76183db3..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.html +++ /dev/null @@ -1,23 +0,0 @@ -<div class="app-data-table"> - <table mat-table class="full-width-table" matSort aria-label="Elements"> - <!-- Id Column --> - <!-- <div *ngFor="let b of "> --> - <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> - - <!-- </div> --> - <tr mat-header-row *matHeaderRowDef="displayedColumns" ></tr> - <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> - </table> - - <mat-paginator #paginator - [length]="dataSource?.data.length" - [pageIndex]="0" - [pageSize]="15" - [pageSizeOptions]="[15, 25, 50, 100, 250]"> - </mat-paginator> -</div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.spec.ts deleted file mode 100644 index cc8fd2bd..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.spec.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { MatPaginatorModule } from '@angular/material/paginator'; -import { MatSortModule } from '@angular/material/sort'; -import { MatTableModule } from '@angular/material/table'; - -import { RunReportResultSetComponent } from './run-report-result-set.component'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { RouterTestingModule } from '@angular/router/testing'; - -describe('RunReportResultSetComponent', () => { - let component: RunReportResultSetComponent; - let fixture: ComponentFixture<RunReportResultSetComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ RunReportResultSetComponent ], - imports: [ - NoopAnimationsModule, - MatPaginatorModule, - MatSortModule, - MatTableModule, - HttpClientTestingModule, - RouterTestingModule - ], - }).compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(RunReportResultSetComponent); - component = fixture.componentInstance; - //fixture.detectChanges(); - }); - - it('should compile', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.ts deleted file mode 100644 index a910d2ba..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report-result-set/run-report-result-set.component.ts +++ /dev/null @@ -1,140 +0,0 @@ -import { AfterViewInit, Component, OnInit, ViewChild, Input, SimpleChange } from '@angular/core'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; -import { MatTable } from '@angular/material/table'; -import { RunReportFinalTableDataSource, RunReportFinalTableItem } from './run-report-result-set-datasource'; -import { ActivatedRoute } from '@angular/router'; -import { HttpClient } from '@angular/common/http'; -import { environment } from '../../../../../../../environments/environment'; -import { RunService } from '../run.service'; - -@Component({ - selector: 'app-run-report-result-set', - templateUrl: './run-report-result-set.component.html', - styleUrls: ['./run-report-result-set.component.css'] -}) -export class RunReportResultSetComponent implements AfterViewInit, OnInit { - - @Input("reportId") reportId1 : string; - - - @ViewChild(MatPaginator, {static: false} as any) paginator: MatPaginator; - @ViewChild(MatSort, {static: false} as any) sort: MatSort; - @ViewChild(MatTable, {static: false} as any) table: MatTable<RunReportFinalTableItem>; - dataSource: RunReportFinalTableDataSource; - - /** Columns displayed in the table. Columns IDs can be added, removed, or reordered. */ - displayedColumns : string[]; - IncomingReportId : string; - displayedColumnsArr : string[]; - displayedRowObj : RunReportFinalTableItem[]; - - constructor(private _http : HttpClient, private _route : ActivatedRoute, private _runService : RunService){ - this.displayedColumnsArr = new Array(); - this.displayedRowObj = new Array(); - this.displayedColumns = new Array(); - } - - ngOnInit() { - this.dataSource = new RunReportFinalTableDataSource(); - - this._route.params.subscribe(params => { - - this.IncomingReportId = params["reportId"]; - }); - this._runService.getReportData(this.reportId1) - .subscribe((response) => { - console.log(response); - - let i=0; - while(response["reportDataColumns"][i]) - { - this.displayedColumnsArr.push(response["reportDataColumns"][i]["columnTitle"] +","+ response["reportDataColumns"][i]["colId"]); - i++; - } - - 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"]; - } - k++; - } - this.displayedRowObj.push(obj); - j++; - } - - console.log(this.displayedColumnsArr); - console.log(this.displayedRowObj); - - for(let l=0; l<this.displayedColumnsArr.length; l++) - { - this.displayedColumns.push(this.displayedColumnsArr[l].split(",")[1]); - } - - - this.dataSource.data = this.displayedRowObj; - this.dataSource.sort = this.sort; - this.dataSource.paginator = this.paginator; - this.table.dataSource = this.dataSource; - - }); - - - } - - ngAfterViewInit() { - this._runService.getReportData(this.reportId1) - .subscribe((response) => { - console.log(response); - - let i=0; - while(response["reportDataColumns"][i]) - { - this.displayedColumnsArr.push(response["reportDataColumns"][i]["columnTitle"] +","+ response["reportDataColumns"][i]["colId"]); - i++; - } - - 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"]; - } - k++; - } - this.displayedRowObj.push(obj); - j++; - } - - console.log(this.displayedColumnsArr); - console.log(this.displayedRowObj); - - for(let l=0; l<this.displayedColumnsArr.length; l++) - { - this.displayedColumns.push(this.displayedColumnsArr[l].split(",")[1]); - } - - this.dataSource.data = this.displayedRowObj; - this.dataSource.sort = this.sort; - this.dataSource.paginator = this.paginator; - this.table.dataSource = this.dataSource; - - }); - - - } - - -} 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/dashboard-report.service.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/dashboard-report.service.spec.ts deleted file mode 100644 index 1c96f7ed..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.spec.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { DashboardReportService } from './dashboard-report.service'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { HttpClient } from '@angular/common/http'; -import { environment } from 'src/environments/environment'; - -describe('DashboardReportService', () => { - - let service: DashboardReportService; - - beforeEach(() => {TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - providers: [HttpClient, HttpClientTestingModule, DashboardReportService] - }); - service = TestBed.get(DashboardReportService); - -}); - - it('should be created', () => { - const service: DashboardReportService = TestBed.get(DashboardReportService); - expect(service).toBeTruthy(); - }); - - it('should getReportData', () => { - service.getReportData("test").subscribe((res) => { - expect(res).toBe(environment); - }); - }); - - it('should getReportDataWithFormFields', () => { - service.getReportDataWithFormFields("just", "test").subscribe((res) => { - expect(res).toBe(environment); - }); - }); - -}); 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/dashboard-report.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.ts deleted file mode 100644 index 1b046334..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-dashboard-report/dashboard-report.service.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { Observable } from 'rxjs'; -import { environment } from 'src/environments/environment'; - -@Injectable({ - providedIn: 'root' -}) -export class DashboardReportService { - - constructor(private _http : HttpClient) { } - - - getReportData(reportId : string) : Observable<any> - { - return this._http.get(environment.baseUrl + "raptor.htm?action=report.run.container&c_master="+reportId+"&refresh=Y"); - } - - getReportDataWithFormFields(queryString : string, reportId : string) : Observable<any> - { - return this._http.get(environment.baseUrl + "raptor.htm?action=report.run.container&c_master="+reportId+queryString+"&refresh=Y&display_content=Y&r_page=0"); - } -} 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 deleted file mode 100644 index c57d7287..00000000 --- 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 +++ /dev/null @@ -1,90 +0,0 @@ -.submit-approval-btn{ - display: contents; -} -.lds-ring { - display: inline-block; - position: relative; - width: 64px; - height: 64px; -} -.lds-ring div { - box-sizing: border-box; - display: block; - position: absolute; - width: 35px; - height: 35px; - margin: 6px; - 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; -} -.lds-ring div:nth-child(1) { - animation-delay: -0.45s; -} -.lds-ring div:nth-child(2) { - animation-delay: -0.3s; -} -.lds-ring div:nth-child(3) { - animation-delay: -0.15s; -} -@keyframes lds-ring { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - - -table { - width: 100%; - } - .example-container { - height: auto; - max-height: 800px; - 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: 0px; - } - - -th{ - background-color: #2125299c; - color: rgb(255, 255, 255); - font-size: 15px; - border-radius: 2px; - height: 35px; - } - - tr:nth-child(even) { - background-color: #dddddd; - font-size: 2px; - height: 35px; - border-radius: 4px; - - } - - tr:nth-child(odd) { - font-size: 2px; - height: 35px; - border-radius: 4px; - } -
\ 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.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 deleted file mode 100644 index 08ae8d42..00000000 --- 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 +++ /dev/null @@ -1,82 +0,0 @@ -<span class="ecomp-spinner" *ngIf="showSpinner"></span> - -<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> - - <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> - - <mat-paginator [pageSizeOptions]="[5, 10, 20]" showFirstLastButtons></mat-paginator> - </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> - </div> - <mat-paginator #paginator - [length]="dataSource?.data.length" - [pageIndex]="0" - [pageSize]="15" - [pageSizeOptions]="[15, 25, 50, 100, 250]"> - </mat-paginator> - </div> - </div> --> 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.scss 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.scss deleted file mode 100644 index e69de29b..00000000 --- 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.scss +++ /dev/null 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 deleted file mode 100644 index a94d9ee1..00000000 --- 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 +++ /dev/null @@ -1,132 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MatTableModule } from '@angular/material'; -import { RunDashboardReportComponent } from './run-dashboard-report.component'; -import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; -import { RouterModule, Router } from '@angular/router'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { RouterTestingModule } from '@angular/router/testing'; -import { DashboardReportService } from './dashboard-report.service'; -import { MockBackend, MockConnection } from '@angular/http/testing'; -import { Http, BaseRequestOptions } from '@angular/http'; -import { Observable } from 'rxjs'; -import 'rxjs/add/observable/empty'; -import 'rxjs/add/observable/of'; -import { environment } from 'src/environments/environment'; - -describe('RunDashboardReportComponent', () => { - let component: RunDashboardReportComponent; - let fixture: ComponentFixture<RunDashboardReportComponent>; - let dashboardService : DashboardReportService; - let router: Router; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - schemas: [CUSTOM_ELEMENTS_SCHEMA], - declarations: [ RunDashboardReportComponent ], - imports: [MatTableModule, RouterTestingModule, HttpClientTestingModule], - providers:[DashboardReportService, MockBackend, BaseRequestOptions, { - provide: Http, - useFactory: (backend: MockBackend, defaultOptions: BaseRequestOptions) => { - return new Http(backend, defaultOptions); - }, - deps: [MockBackend, BaseRequestOptions], - }] - }) - .compileComponents(); - dashboardService = TestBed.get(DashboardReportService); - router = TestBed.get(Router); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(RunDashboardReportComponent); - component = fixture.componentInstance; - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should test ngOnInit method', () => { - component.queryString = "test"; - component.ngOnInit(); - expect(component.initialQueryString).toEqual("test"); - expect(component.initCounter).toEqual(component.initCounter++); - spyOn(component, 'initialProcesses'); - component.initialProcesses(); - expect(component.initialProcesses).toHaveBeenCalled(); - }); - - it('should test initialProcess method', () => { - component.initialProcesses(); - expect(component.dataSource.paginator).toEqual(component.paginator); - }); - - it('should test ngOnChanges methods if condition', () => { - - component.hitCnt = 1; - component.queryString = "testing" - component.initialQueryString === "test"; - component.initCounter > 0; - component.runButtonHitCounter === 2; - - component.ngOnChanges(); - expect(component.initialQueryString).toEqual(component.queryString); - expect(component.runButtonHitCounter).toEqual(component.hitCnt); - - spyOn(component, 'initialProcesses'); - spyOn(component, 'afterViewInitProcesses'); - component.initialProcesses(); - component.afterViewInitProcesses(); - expect(component.initialProcesses).toHaveBeenCalled(); - expect(component.afterViewInitProcesses).toHaveBeenCalled(); - - }); - - it('should test ngOnChanges methods else condition', () => { - - component.hitCnt = 1; - component.queryString = "testing" - component.initialQueryString === "testing"; - component.initCounter = 0; - component.runButtonHitCounter === 1; - - component.ngOnChanges(); - expect(component.runButtonHitCounter).toBe(component.hitCnt); - expect(component.initialQueryString).toBe(component.queryString); - -}); - - it('should test applyFilter method', () => { - component.applyFilter("testing"); - expect(component.dataSource.filter).toEqual("testing".trim().toLowerCase()); - }); - - it('should test afterViewInitProcesses method', () => { - component.afterViewInitProcesses(); - expect(component.displayedColumnsArr).toEqual(new Array()); - expect(component.displayedRowObj).toEqual(new Array()); - expect(component.displayedColumns).toEqual(new Array()); - expect(component.formFieldList).toEqual(new Array()); - expect(component.showSpinner).toEqual(true); - expect(component.isReady).toEqual(false); - expect(component.NEWdisplayedColumns).toEqual(new Array()); - }); - - it('should test linkToReport method', () => { - let reportId = "abc"; - let queryParameters = "def"; - component.linkToReport(reportId, queryParameters); - }); - - it('should test linkToFeedback method', () => { - let reportId = "abc"; - let queryParameters = "def"; - component.linkToFeedback(reportId, queryParameters); - }); - - it('should test linkToMail method', () => { - let mailID = "abc"; - component.linkToMail(mailID); - }); - -});
\ 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.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 deleted file mode 100644 index ccf6212a..00000000 --- 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 +++ /dev/null @@ -1,275 +0,0 @@ -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'; -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'] -}) - -export class RunDashboardReportComponent implements AfterViewInit { - - @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(); - } - - 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(); - } 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); - }); - } - } - } - - 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; - } - - 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); - } - this._router.navigate(['v2/app/run', reportID, queryParameters]); - } - - linkToFeedback(feedBackId: string, queryParameters: string) { - this._router.navigate(['v2/app/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; - } - - -} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report-datasource.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report-datasource.ts deleted file mode 100644 index 8c8d6222..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report-datasource.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { DataSource } from '@angular/cdk/collections'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; -import { map } from 'rxjs/operators'; -import { Observable, of as observableOf, merge } from 'rxjs'; - -// TODO: Replace this with your own data model type -export interface RunReportFinalTableItem { - -} - -// TODO: replace this with real data from your application - - -/** - * Data source for the RunReportFinalTable view. This class should - * encapsulate all logic for fetching and manipulating the displayed data - * (including sorting, pagination, and filtering). - */ -export class RunReportDataSource extends DataSource<RunReportFinalTableItem> { - data: RunReportFinalTableItem[]; - paginator: MatPaginator; - sort: MatSort; - - constructor() { - super(); - } - - /** - * Connect this data source to the table. The table will only update when - * the returned stream emits new items. - * @returns A stream of the items to be rendered. - */ - connect(): Observable<RunReportFinalTableItem[]> { - // Combine everything that affects the rendered data into one update - // stream for the data-table to consume. - const dataMutations = [ - observableOf(this.data), - this.paginator.page, - this.sort.sortChange - ]; - - return merge(...dataMutations).pipe(map(() => { - return this.getPagedData(this.getSortedData([...this.data])); - })); - } - - /** - * Called when the table is being destroyed. Use this function, to clean up - * any open connections or free any held resources that were set up during connect. - */ - disconnect() {} - - /** - * Paginate the data (client-side). If you're using server-side pagination, - * this would be replaced by requesting the appropriate data from the server. - */ - private getPagedData(data: RunReportFinalTableItem[]) { - const startIndex = this.paginator.pageIndex * this.paginator.pageSize; - return data.splice(startIndex, this.paginator.pageSize); - } - - /** - * Sort the data (client-side). If you're using server-side sorting, - * this would be replaced by requesting the appropriate data from the server. - */ - private getSortedData(data: RunReportFinalTableItem[]) { - if (!this.sort.active || this.sort.direction === '') { - return data; - } - - - return data.sort((a, b) => { - const isAsc = this.sort.direction === 'asc'; - switch (this.sort.active) { - // case 'name': return compare(a.name, b.name, isAsc); - // case 'id': return compare(+a.id, +b.id, isAsc); - - - default: return 0; - } - }); - } -} - -/** Simple sort comparator for example ID/Name columns (for client-side sorting). */ -function compare(a, b, isAsc) { - return (a < b ? -1 : 1) * (isAsc ? 1 : -1); -} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.css deleted file mode 100644 index 85e3c58f..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.css +++ /dev/null @@ -1,1419 +0,0 @@ -.approval-img{ - height:25px; - width:25px -} -.submit-approval-btn{ - display: contents; -} -.gridster-item-content{ - overflow-y: scroll; - overflow-x: scroll; - overflow: scroll; -} - -.lds-ring { - display: inline-block; - position: relative; - width: 64px; - height: 64px; -} -.lds-ring div { - box-sizing: border-box; - display: block; - position: absolute; - width: 35px; - height: 35px; - margin: 6px; - 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; -} -.lds-ring div:nth-child(1) { - animation-delay: -0.45s; -} -.lds-ring div:nth-child(2) { - animation-delay: -0.3s; -} -.lds-ring div:nth-child(3) { - animation-delay: -0.15s; -} -@keyframes lds-ring { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - - -/* .left { - width: auto; - float: left; - text-align: right; -} -.right { - width: auto; - - float: left; -} */ - -mat-icon{ - color: #006496; - cursor: pointer; -} -.mat-icon-delete{ - color: #006496; - cursor: pointer; -} - - -button, -input, -select, -textarea { - margin: 0; - font-size: 100%; - vertical-align: middle; } - - -button, -html input[type="button"], -input[type="reset"], -input[type="submit"] { - appearance: button; - cursor: pointer; } - - -.defaultFontSize1{ - font-size: 16px; -} - -.defaultFontSize{ - font-size: 15px; -} - -/* .tab-pane{ - padding-right: 130px; - padding-left: 120px; - color: rgba(0, 0, 0, 0.603) -} */ - -.boxMargin{ - - width: auto; -} - -td.mat-cell{ - padding-left: 3px; - border-bottom-width: 1px; - border-bottom-style: solid; - border-right: 1px solid #999; - border-left: 1px solid #999; -} - -mat-button-toggle{ - display: block; - width: 400px; - border-radius: 5px; -} - - -.tab-content{ - margin-right: 20px; - /* background-color: #006496; */ - color: rgb(0, 0, 0); -} - -.stdForm{ - margin-left: 20px; -} - -.field-group { - position: relative; - display: block; -} - - -input { - width: 400px; - height: 35px; -} - -label + .field-group, label + .input-append, label + .row, label + .row-nowrap, label + .form-row { - margin-top: 5px; -} - - -.checkbox .skin { - background-color: #fff; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - width: 24px; - position: absolute; - left: 0; - top: 0; -} - - -label, -select, -button, -input[type="button"], -input[type="reset"], -input[type="submit"], -input[type="radio"], -input[type="checkbox"] { - cursor: pointer; } - -label, -select, -button, -input[type="button"], -input[type="reset"], -input[type="submit"], -input[type="radio"], -input[type="checkbox"] { - cursor: pointer; } - -input[type=search] { - -webkit-appearance: textfield; } - -input[type=search]:-webkit-search-cancel-button, -input[type=search]:-webkit-search-decoration { - -webkit-appearance: none; } - - - - [class*="icon-primary-"], - .nav-links a:after, - .bellyband-link a:after, - .breadcrumb > li:after, - .checkbox input:checked + .skin:after, - .checkbox input.indeterminate + .skin:after, - .checkbox input:indeterminate + .skin:after, - .selectWrap.large:before, - .form-row.error .error-msg:before, - .close:before, - .reset-field:before, - .cssIcon-globe:before, - .selectWrap:after { - color: #0568ae; - left: 6px; - top: -3px; - width: 2px; - height: 3px; - border: solid white; - border-width: 0 3px 3px 0; - -webkit-transform: rotate(45deg); - -ms-transform: rotate(45deg); - transform: rotate(45deg);} - - [class*="icoWeather-"], [class*="icoTrans-"], [class*="icoBubble-"], [class*="icoRetail-"], [class*="icoPeople-"], [class*="icoNumslets-"], [class*="icoLocation-"], [class*="icoHealthcare-"], [class*="icoDocuments-"], [class*="icoDevices-"], [class*="icoDatanetwork-"], [class*="icoControls-"], [class*="icoBuilding-"], [class*="icoArrows-"] { - color: #0568ae; - display: inline-block; - font-style: normal; - font-size: 20px; - font-weight: normal; - font-variant: normal; - font-style: normal; - width: 20px; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - position: relative; - speak: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - vertical-align: middle; } - - [class*="icon-primary-"]:before, - [class*="icon-primary-"]:after { - box-sizing: border-box; - display: inline-block; - font-size: 1em; - height: 1em; - position: relative; - top: 0; - left: 0; - vertical-align: middle; - width: 1em; } - - -.checkbox { - position: relative; - min-height: 24px; - font-family: "Omnes-ECOMP-W02", Arial; - font-size: 1rem; - } - .checkbox input { - -webkit-tap-highlight-color: transparent; - height: 20px; - margin-left: 20px; - opacity: 0; - outline: none; - position: absolute; - left: 1px; - top: 1px; - width: 10px; } - .checkbox input:focus + .skin { - border-color: #0568ae; } - .checkbox input:focus + .skin:before { - content: ""; - height: 34px; - left: -6px; - top: -6px; - outline: 1px dotted #000000; - position: absolute; - width: 34px; } - .checkbox input:checked:not(:disabled) + .skin { - background-color: #0568ae; - border-color: #0568ae; } - .checkbox input:checked:disabled + .skin:after { - color: #5A5A5A; } - .checkbox input:checked + .skin:after { - height: 20px; - width: 10px; - background-color: transparent; - font-size: 23.4px; - color: #FFFFFF; - line-height: 21px; } - .checkbox input:disabled + .skin { - cursor: not-allowed; - background-color: #d2d2d2; - border-color: #d2d2d2; - color: #666666; } - .checkbox input:disabled + .skin + span { - cursor: not-allowed; - color: #666666; } - .checkbox input:invalid + .skin { - border: solid 1px #cf2a2a; } - .checkbox input:indeterminate + .skin:after { - background-color: transparent; - font-size: 25px; - color: #0574ac; - content: "\e920"; } - .checkbox .skin { - background-color: #fff; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - width: 24px; - position: absolute; - left: 0; - top: 0; } - .checkbox span { - display: inline-block; - margin-left: 34px; - margin-top: 0; - position: relative; - top: 3px; } - .checkbox label { - font-size: 1.6rem; - font-family: "Omnes-ECOMP-W02", Arial; } - .checkbox input { - z-index: 9999; } - .checkbox input.indeterminate + .skin:after { - font-size: 22px; - color: #0568ae; } - -/* .checkbox.inline { - display: inline-block; - margin-bottom: 10px; - vertical-align: middle; - margin-right: 10px; } - .checkbox.inline:last-child { - margin-right: 0; } - -.checkbox.checkbox-selectall { - margin: 20px 0 0 24px; } - -.terms-after-checkbox { - margin-top: 15px; } */ - - - .b2b-tree-checkbox a > span.nodeIcon.end { - margin-top: 10px; } -.b2b-tree-checkbox a:only-child { - color: #0574ac; } - .b2b-tree-checkbox a:only-child > span.nodeIcon { - left: -11px; - border-radius: 50%; - line-height: 7px; - top: 0; } - .b2b-tree-checkbox a:only-child > span.nodeIcon > i { - background-color: inherit; - background: #fff; } -.b2b-tree-checkbox a > span.nodeIcon > i.icon-primary-circle { - background-color: inherit; - background: #fff; - font-size: 5px; } -.b2b-tree-checkbox ul li:first-child > a:only-child > span { - left: -11px; - border-radius: 50%; - line-height: 12px; - top: 0px; } -.b2b-tree-checkbox ul li:first-child > a:only-child > span.end { - margin-top: 0px; } -.b2b-tree-checkbox ul li:first-child > a:only-child > span i.icon-primary-circle { - top: 8px; } -.b2b-tree-checkbox ul li:last-child > a:only-child > span { - height: 34px; - background-color: #fff; } -.b2b-tree-checkbox li a + ul { - height: 0; - overflow: hidden; } -.b2b-tree-checkbox li a.active + ul { - height: auto; } -.b2b-tree-checkbox li a.grp { - font-family: "Omnes-ECOMP-W02-Italic", Arial; } -.b2b-tree-checkbox span.end { - left: -6px !important; } -.b2b-tree-checkbox .checkbox { - margin-bottom: 0px; - margin-top: 2px; - font-size: 14px; } - .b2b-tree-checkbox .checkbox input:indeterminate + .skin:after { - content: "\2014"; - padding-left: 2px; - font-family: inherit !important; - line-height: inherit !important; } -/* .b2b-tree-checkbox span.first-link { - width: 3px !important; - height: 15px !important; - top: 0px !important; - left: -2px !important; - background: #fff; } */ - - .b2b-pane-selector-wrapper .pane-container .panes div.pane-block .form-row .checkbox-selectall { - margin: 0px 0 0 24px !important; } - -.filter-container .checkbox .icon-primary-spinner { - height: 24px; - position: absolute; - width: 24px; } - - -textarea { - display: block; - width: 400px; - max-width: 50%; - padding: 15px; -} -select { - margin-right: -1; - max-width: 400px; - height: 36px; - line-height: 25px; - width: 400px; - background-color: #95959521; } - -.selectWrap.disabled .icon-primary-down { - color: #d6d6d6; } - -.selectWrap.disabled input.awd-select { - z-index: 0; - padding: 10px 45px 10px 15px; - text-indent: 0; } - -.selectWrap.disabled button.awd-select { - z-index: 0; - text-indent: 15px; } - -.selectWrap.disabled:after { - color: #5A5A5A; - cursor: not-allowed; } - -input.awd-select { - background-color: transparent; - border: 1px solid #d2d2d2; - border-radius: 6px; - box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15); - color: #333333; - display: block; - font-family: "Omnes-ECOMP-W02", Arial; - /*font-size: 1.6rem;*/ - height: 36px; - line-height: 0; - margin-bottom: 0; - position: relative; - text-align: left; - top: 0; - width: 100%; - z-index: 10; - padding: 12px 45px 8px 15px; - user-select: none; } - input.awd-select:focus { - border-color: #0568ae !important; - text-overflow: ellipsis; - padding-right: 45px; } - -button.awd-select { - background-color: transparent; - border: 1px solid #d2d2d2; - border-radius: 6px; - box-shadow: 1px 5px 2px -5px rgba(0, 0, 0, 0.15); - color: #333333; - display: block; - font-family: "Omnes-ECOMP-W02", Arial; - /*font-size: 1.6rem;*/ - height: 36px; - line-height: 36px; - margin-bottom: 0; - position: relative; - text-align: left; - top: 0; - width: 100%; - z-index: 10; } - button.awd-select:not(.large) { - text-indent: 15px; - white-space: nowrap; - overflow: hidden; - text-overflow: clip; - text-overflow: ellipsis; } - button.awd-select img { - height: 26px; - margin-right: 7px; - margin-top: -10px; - position: relative; - top: 2px; - vertical-align: text-bottom; } - button.awd-select:focus { - border-color: #0568ae !important; } - button.awd-select i { - font-size: 23px; - position: absolute; - right: 33px; - top: 5px; - z-index: 1000; } - -button.awd-select.large { - align-items: center; - display: flex; - height: 60px; - line-height: 20px; - overflow: hidden; - padding-left: 70px; - vertical-align: middle; } - button.awd-select.large img { - height: 40px; - left: 20px; - position: absolute; - top: 20px; - width: 40px; } - -.selectWrap.large { - height: 60px; } - .selectWrap.large .awd-select-list-item { - align-items: center; - display: flex; - height: 60px; - line-height: 20px; - overflow: hidden; - padding-left: 70px; - vertical-align: middle; } - .selectWrap.large .awd-select-list-item img { - height: 40px; - left: 20px; - position: absolute; - top: 20px; - width: 40px; - top: 10px; } - - .inputWrap { - border-radius: 6px; - position: relative; - height: 36px; - line-height: 44px; - display: block; - margin: 0; - } - -button.awd-select.active { - border-radius: 6px 6px 0 0; } - button.awd-select.active:focus { - border-color: #d2d2d2 !important; } - -input.awd-select.active { - border-radius: 6px 6px 0 0; } - input.awd-select.active:focus { - border-color: #d2d2d2 !important; } - -.selectWrapper { - position: relative; } - -span.selectWrap input[readonly]:focus { - color: transparent; - text-shadow: 0 0 0 #000; } - -.isIE.ds2-no-colors .awd-select:focus { - outline: 1px dashed transparent; } - -.awd-select-list { - box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15); - border-radius: 0 0 6px 6px; - position: absolute; - border: 1px solid #d2d2d2; - border-top: 0; - padding: 0; - background-color: #f2f2f2; - z-index: 1000; - width: 100%; - max-height: 320px; - overflow-y: auto; } - -.awd-select-list-item { - cursor: pointer; - height: 100%; - min-height: 36px; - line-height: 20px; - overflow: hidden; - padding: 8px 15px; - position: relative; - z-index: 1000; } - .awd-select-list-item:hover { - cursor: pointer; - background-color: #d2d2d2; - outline: 1px dashed transparent; } - .awd-select-list-item:focus { - cursor: pointer; - background-color: #d2d2d2; - outline: 1px dashed transparent; } - .awd-select-list-item img { - margin-top: 0; - margin-right: 7px; - height: 26px; - width: 26px; } - -.selectWrap { - border-radius: 6px; - position: relative; - height: 36px; - line-height: 28px; - display: block; - margin: 0; - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); } - .selectWrap:not(.large) .awd-select-list-item:first-child { - margin-top: 15px; } - .selectWrap:not(.large) .awd-select-list-item:last-child { - margin-bottom: 15px; } - .selectWrap .icon-primary-down { - font-size: 23px; - margin-top: -11px; - position: absolute; - right: 4px; - top: 50%; } - .selectWrap + [aria-expanded="true"] { - padding-bottom: 9px; - padding-top: 20px; } - -.awd-select-list-item[data-hover="true"] { - background-color: #d2d2d2; } - -span input.awd-select { - width: 100%; - cursor: pointer; - text-overflow: ellipsis; - padding-right: 45px; } - -li.optgroup-wrapper { - font-family: "Omnes-ECOMP-W02-Medium", Arial; - cursor: default !important; - padding: 0px 15px; } - li.optgroup-wrapper:first-child { - padding-top: 10px; } - li.optgroup-wrapper:hover { - background-color: #f2f2f2; } - -ul.optgroup { - font-family: "Omnes-ECOMP-W02", Arial; - cursor: pointer !important; - margin: 0 -15px; } - ul.optgroup li { - padding: 0 0 0 33px; } - -label + .selectWrap { - margin-top: 4px; } - -.selectorModule { - border-radius: 6px; - position: relative; - height: 36px; - line-height: 28px; - display: block; - margin: 0; - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); } - -.group .selectWrap { - margin: 0 0 10px 0; } - -select.awd-select { - position: relative; - top: 0; - left: 0; - font-size: 16px; - z-index: 1010; - height: 33px; - min-width: 100%; - opacity: 0.01; } - select.awd-select > optgroup { - padding-left: 8px; - font-style: normal; - margin-top: 10px; } - select.awd-select > optgroup:first-child { - margin-top: 0; } - select.awd-select > optgroup > option { - padding-left: 8px; } - select.awd-select > option { - padding-left: 8px; } - select.awd-select + span { - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - background: -webkit-linear-gradient(top, #fcfcfc 0%, #f2f2f2 100%); - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="@att-gray-highlight", endColorstr="@att-functional-bg-gray", GradientType=0); - position: absolute; - top: 0; - left: 0; - z-index: 0; - display: block; - border: 1px solid #d2d2d2; - border-radius: 6px; - height: 35px; - line-height: 0; - padding: 18px 45px 15px 15px; - width: 100%; - font-size: 1.6rem; - padding-right: 45px; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; } - select.awd-select + span > i { - font-size: 23px; - position: absolute; - right: 33px; - top: 5px; - z-index: 1000; } - select.awd-select + span > i:before { - left: 1px; - position: absolute; - top: -1px; } - select.awd-select:focus + span { - border-color: #0568ae; } - -.isIE select.awd-select + span { - line-height: 1; } - -[data-default-option="true"] { - color: #767676 !important; - font-family: "Omnes-ECOMP-W02-Italic", Arial; } - -.placeholdercolor { - color: #767676 !important; - font-family: "Omnes-ECOMP-W02-Italic", Arial; } - -.filterTank button.awd-select { - border-color: #d2d2d2; - background-color: #333333; - color: #FFFFFF; - color: #333333; } - .filterTank button.awd-select:after { - background-color: #FFFFFF !important; - border-color: #d2d2d2; } - -.utility-bg button.awd-select { - border-color: #d2d2d2; - background-color: #333333; - color: #FFFFFF; - color: #333333; } - .utility-bg button.awd-select:after { - background-color: #FFFFFF !important; - border-color: #d2d2d2; } - -.utility-bg select.awd-select + span { - border-color: #d2d2d2; - border-color: #d2d2d2; - background-color: #333333; - background-color: #333333; - color: #FFFFFF; - color: #FFFFFF; } - .utility-bg select.awd-select + span:after { - background-color: #FFFFFF !important; - background-color: #FFFFFF !important; - border-color: #d2d2d2; - border-color: #d2d2d2; } - -.utility-bg select.awd-select:focus + span { - border-color: #d2d2d2; - border-color: #d2d2d2; - background-color: #333333; - background-color: #333333; - color: #FFFFFF; - color: #FFFFFF; } - .utility-bg select.awd-select:focus + span:after { - background-color: #FFFFFF !important; - background-color: #FFFFFF !important; - border-color: #d2d2d2; - border-color: #d2d2d2; } - -.utility-bg select.awd-select:hover + span { - border-color: #d2d2d2; - border-color: #d2d2d2; - background-color: #333333; - background-color: #333333; - color: #FFFFFF; - color: #FFFFFF; } - .utility-bg select.awd-select:hover + span:after { - background-color: #FFFFFF !important; - background-color: #FFFFFF !important; - border-color: #d2d2d2; - border-color: #d2d2d2; } - -input.awd-select[disabled] { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - input.awd-select[disabled] + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - -button.awd-select[disabled] { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - button.awd-select[disabled]:after { - background-color: #d2d2d2 !important; - border-color: #d2d2d2; } - -select.awd-select[disabled] + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - select.awd-select[disabled] + span:after { - background-color: #d2d2d2 !important; - border-color: #d2d2d2; } - -select.awd-select[disabled]:focus + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - -select.awd-select[disabled]:hover + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - -input.awd-select[disabled="disabled"] { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - input.awd-select[disabled="disabled"] + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - -select.awd-select[disabled="disabled"] + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - select.awd-select[disabled="disabled"] + span:after { - background-color: #d2d2d2 !important; - border-color: #d2d2d2; } - -select.awd-select[disabled="disabled"]:focus + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - select.awd-select[disabled="disabled"]:focus + span:after { - background-color: #d2d2d2 !important; - border-color: #d2d2d2; } - -select.awd-select[disabled="disabled"]:hover + span { - cursor: not-allowed; - border-color: #d2d2d2; - background-color: #d2d2d2; - background-image: none; - color: #5A5A5A; } - select.awd-select[disabled="disabled"]:hover + span:after { - background-color: #d2d2d2 !important; - border-color: #d2d2d2; } - -.ddexpand-wrapper > h2 { - margin-bottom: 11px; } - .ddexpand-wrapper > h2 + p { - margin-bottom: 4px; } - -.ddexpand-wrapper .selectWrap + [aria-expanded="true"] .form-row { - margin-top: 11px; } - -.ddexpand-wrapper .selectWrap + [aria-expanded="true"] .row + .row .form-row { - margin-top: 14px; } - -.modal .awd-select-list { - z-index: 1060 !important; } - -.form-row.error button.awd-select.active:focus { - border-color: #cf2a2a !important; } - -.form-row.error input.awd-select.active:focus { - border-color: #cf2a2a !important; } - -.awd-module-list .module-list-item[aria-selected="true"] { - background-color: #f2f2f2; } - -li.module-list-item[aria-selected="true"]:before { - color: #0568ae; - display: inline-block; - font-family: "icoControls" !important; - font-style: normal; - font-size: 20px; - font-weight: normal; - font-variant: normal; - height: 1em; - margin-right: 7px; - text-transform: none; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - position: relative; - speak: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - vertical-align: middle; - width: 1em; - content: "\e907"; - box-sizing: border-box; - display: inline-block; - font-size: 2em; - height: 1em; - position: absolute; - top: 20px; - right: 0px; - vertical-align: middle; - width: 1em; - color: #007a3e; } - -@media (min-width: 768px) { - span[class*="large"] { - max-width: 370px; } - .large { - max-width: 370px; } } - -@media (max-width: 767px) { - .selectWrap.large:after { - right: 5px; } - .selectWrap.large .awd-select-list-item { - padding-right: 41px; } - .selectWrap + div > h4 { - margin-bottom: 0; - font-size: 16px; } } - -/**********************Dropdown Chrome scrolling fix start ********************/ -input.awd-select { - -webkit-user-select: text; - -moz-user-select: text; - -ms-user-select: text; - user-select: text; } - -.checkbox .skin { - background-color: #fff; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - width: 24px; - position: absolute; - left: 0; - top: 0; -} - -i, em { - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; -} - - - -.card{ - border-radius: 5px; -} - -.card-header{ - height: 50px; -} - -.card-body{ - height: 150px; -} - -.card-footer{ - height: 50px; -} - -.dialog__close-btn { - border: 0; - background: #087ac2; - color: #ffffff; - position: absolute; - top: 8px; - right: 8px; - font-size: 1.2em; - display: block; - border: #087ac2 2px solid; -} - -.modalTitle{ - font-size: 35px; -} - - -.full-width-table { - width: 100%; -} - - -.app-data-table { - margin-top: 35px; - /* margin-left: 250px; - margin-right: 250px; */ - -} - -.app-data-table-fixed-height { - overflow: scroll; - width: 100%; - max-height: 60%; -} - -th{ - background-color: #2125299c; - color: rgb(255, 255, 255); - font-size: 15px; - border-radius: 2px; - height: 35px; -} - -tr:nth-child(even) { - background-color: #dddddd; - font-size: 2px; - height: 35px; - border-radius: 4px; - -} - -tr:nth-child(odd) { - font-size: 2px; - height: 35px; - border-radius: 4px; -} - - -.card{ - border-radius: 10px; - -} - -.card-header{ - height: 80px; -} - -.card-body{ - height: 150px; -} - -.card-footer{ - height: 55px; - margin-right: 10px; -} - -.dialog__close-btn { - border: 0; - background: #087ac2; - color: #ffffff; - position: absolute; - top: 12px; - right: 12px; - font-size: 1em; - display: block; - border: #087ac2 2px solid; -} - -.modalTitle{ - font-size: 35px; -} - -::-webkit-scrollbar { - width: 5px; - background: transparent; -} - - -label { - float: left; - width: 24em; - margin-right: 2em; - text-align: right; -} - - -.btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - - -a.btn { - vertical-align: middle; } - a.btn:hover { - text-decoration: none; } - -.field-group + .btn { - margin-left: 20px; } - -.btn-primary { - border-color: #ea7400 transparent #d16500; - background-color: #ea7400 transparent #d16500; - background: linear-gradient(to bottom, #ea7400 0%, #d16500 100%); - color: #ffffff; - font-family: "Omnes-ECOMP-W02", Arial; - font-weight: bold; } - .btn-primary:hover { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-primary:focus { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-primary:active { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - -.btn-arrow { - font-family: "Omnes-ECOMP-W02", Arial; - font-size: 1.6rem; - font-weight: normal; - background-color: transparent; - border: none; - padding: 5px 0 0; - top: -4px; - color: #333333; - position: relative; } - .btn-arrow:hover { - text-decoration: underline; } - .btn-arrow:hover .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:hover .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:hover .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:hover .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow:focus { - text-decoration: underline; - outline: 1px dotted #666; } - .btn-arrow:focus .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:focus .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:focus .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:focus .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow:active .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:active .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:active .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:active .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow .btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-arrow .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow::-moz-focus-inner { - padding: 0; - border: 0; } - .btn-arrow .btn { - border: 1px solid transparent; - border-radius: 100%; - height: 36px; - margin-bottom: 0; - margin-right: 7px; - max-width: 36px; - min-width: 20px; - padding: 0; - margin-top: -4px; - vertical-align: middle; - width: 36px; } - .btn-arrow .btn .icon-primary-left { - bottom: 0; - display: block; - height: 100%; - left: 0; - line-height: 0; - position: absolute; - right: 0; - text-indent: 0; - top: 0; } - .btn-arrow .btn .icon-primary-left:before { - position: absolute; - font-size: 1.6rem; - left: 1px; - top: 9px; } - .btn-arrow .btn .icon-primary-right { - bottom: 0; - display: block; - height: 100%; - left: 0; - line-height: 0; - position: absolute; - right: 0; - text-indent: 0; - top: 0; - color: #ffffff; } - .btn-arrow .btn .icon-primary-right:before { - position: absolute; - font-size: 1.6rem; - left: 17px; - top: 9px; } - .btn-arrow .btn.btn-primary .icon-primary-left { - color: #fff; } - .btn-arrow .btn.btn-primary .icon-primary-right { - color: #fff; } - .btn-arrow .btn.btn-alt .icon-primary-left { - color: #fff; } - .btn-arrow .btn.btn-alt .icon-primary-right { - color: #fff; } - .btn-arrow .btn.btn-secondary { - border: 1px solid #d2d2d2; } - .btn-arrow .btn.btn-secondary .icon-primary-left { - color: #0568ae; } - .btn-arrow .btn.btn-secondary .icon-primary-right { - color: #0568ae; } - .btn-arrow .btn.btn-small { - height: 20px; - max-width: 20px; - min-width: 20px; - width: 20px; - top: -1px; } - .btn-arrow .btn.btn-small .icon-primary-left:before { - font-size: 5px; - top: 4px; - left: 0; } - .btn-arrow .btn.btn-small .icon-primary-right:before { - font-size: 5px; - top: 4px; - left: 10px; } - .btn-arrow .btn.btn-large .icon-primary-left:before { - font-size: 112%; - top: 12px; - left: 23px; } - .btn-arrow .btn.btn-large .icon-primary-right:before { - font-size: 112%; - top: 12px; - left: 23px; } - -.btn-secondary { - border: 1px solid #d2d2d2; - background-color: #f2f2f2; - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - color: #0568ae; - box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.15); - padding: 14px 18px 11px 17px; } - .btn-secondary:hover { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-secondary:focus { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-secondary:active { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - -.btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - -.btn-specialty { - border-color: #008744 transparent #007a3e; - background-color: #007a3e; - background: linear-gradient(to bottom, #008744 0%, #007a3e 100%); - color: #ffffff; } - .btn-specialty:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-specialty:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-specialty:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - -.btn-clear { - background: transparent !important; - border-color: transparent !important; - font-weight: normal; - font-family: "Omnes-ECOMP-W02", Arial; - box-shadow: none; - text-decoration: none; - color: #0568ae; } - .btn-clear:focus { - text-decoration: underline; } - .btn-clear:hover { - text-decoration: underline; } - -.downloadImg{ - height: 25px ; - width: 25px; -} - -#reportTableSize{ - width: 99%; - height: 750px; -} - - .gridster-color { - background: whitesmoke; - } - - -.download-div{ - width: 20%; - float: left; - height: 30px; -} - -.pagination-div{ -width: 60%; -float: right; -height: 30px; -} - -.download-title{ -padding-right: 10px; -font-size: 14px; -font-family: Roboto, "Helvetica Neue", sans-serif; -color: rgba(0, 0, 0, 0.54); -} - -.filter-div{ - height: 30px; - width: 20%; - float: left; -} - -.btn-back { - padding-bottom: 5px; - font-size: 15px;} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html deleted file mode 100644 index 42035f65..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.html +++ /dev/null @@ -1,142 +0,0 @@ -<span *ngIf="showSpinner" class="ecomp-spinner"></span> - -<div *ngIf="showDashboardReport"> - <span *ngIf="download_in_progress" class="ecomp-small-spinner"></span> - Download: - <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlsx')" - placement="top" ngbTooltip="Download Dashboard Report" - src="assets/images/xlsx.png"></a> - - <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.openxmlformats-officedocument.spreadsheetml.sheet', 'xlsx')" placement="top" ngbTooltip="Download Current Page" - src="assets/images/xlsx.png"></a> - <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'xlsx')" placement="top" ngbTooltip="Download All" - src="assets/images/xlsx.png"></a> - <a [routerLink]=""><img class="downloadImg" (click)="downloadReport('application/pdf', 'pdf')" placement="top" ngbTooltip="Download PDF" - src="assets/images/pdf.png" ></a> - <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] == 'linkToFeedback'" - > - <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'" - > - <a (click)="linkToMail(row[keys].split('|')[1])" - [routerLink]="">{{row[keys].split('|')[2]}}</a> - </div> - <div *ngIf="row[keys].split('|')[0] == 'clickToDownload' "> - <mat-icon (click)="onClickToDowload(row)" aria-hidden="false" aria-label="play-for-work" - class="mat-icon-delete">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])"> - {{row[keys].split('|')[0]}} </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 *ngIf="error == true"> - <h3>Error Message:</h3> - <p>{{errorMessage}}</p> - <br/> - <h3>Stack Trace:</h3> - <p>{{stackTrace}}</p> - </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> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-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-report.component.spec.ts deleted file mode 100644 index e1476421..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.spec.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { NoopAnimationsModule } from '@angular/platform-browser/animations'; -import { MatPaginatorModule } from '@angular/material/paginator'; -import { MatSortModule } from '@angular/material/sort'; -import { MatTableModule, MatTableDataSource } from '@angular/material/table'; - -import { RunReportComponent, PeriodicElement } from './run-report.component'; -import { CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA, SimpleChange, SimpleChanges } from '@angular/core'; -import { MatMenuModule } from '@angular/material'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { RouterTestingModule } from '@angular/router/testing'; -import { RunService } from '../run.service'; -import 'rxjs/add/observable/empty'; -import 'rxjs/add/observable/of'; -import { Observable } from 'rxjs'; - -describe('RunReportComponent', () => { - let component: RunReportComponent; - let fixture: ComponentFixture<RunReportComponent>; - const displayedColumnsArr1 = []; - const DashboardReportObj1 = []; - const trigger = ["a","b"]; - let change : SimpleChanges; - let runService : RunService; - let options1 = {}; - let dashboard; - let dashboard2; - let responseformfield = 1; - let environment = [ - { - baseUrl: 'just a link' - } - ] - - - beforeEach(async(() => { - TestBed.configureTestingModule({ - schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA], - declarations: [ RunReportComponent ], - imports: [ - NoopAnimationsModule, - MatPaginatorModule, - MatSortModule, - MatTableModule, - MatMenuModule, - HttpClientTestingModule, - RouterTestingModule - ], - providers: [RunService] - }).compileComponents(); - runService = TestBed.get(RunService); - //spyOn(runService, 'getReportDataWithFormFields').and.returnValue(Observable.of(environment)); - //spyOn(runService, 'getReportData').and.returnValue(Observable.of(environment)); - spyOn(runService, 'downloadReportExcel').and.returnValue(Observable.of(environment)); - })); - - beforeEach(() => { - //dashboard = {"item":{"hasContent":{"name":"rupi","id":"check#check"}}}; - fixture = TestBed.createComponent(RunReportComponent); - runService = TestBed.get(RunService); - component = fixture.componentInstance; - component.DashboardReportObj = DashboardReportObj1; - component.displayedColumnsArr = displayedColumnsArr1; - component.TriggerFFArr = trigger; - component.options = options1; - component.dashboard = dashboard; - component.responseFormFieldListLength = responseformfield; - //fixture.detectChanges(); - }); - - it('should compile', () => { - expect(component).toBeTruthy(); - }); - - it('should test the ngOnChanges second If condition', () => { - component.queryString = "test" - component.runButtonHitCnt = 1; - component.initialQueryString = "abc"; - component.initCounter = 4; - component.hitCnt = 2; - component.ngOnChanges(change); - - expect(component.runButtonHitCnt).toEqual(component.hitCnt); - expect(component.initialQueryString).toEqual("test"); - spyOn(component, 'initialProcesses'); - spyOn(component, 'afterViewInitialProcesses'); - component.initialProcesses(); - component.afterViewInitialProcesses(); - - expect(component.initialProcesses).toHaveBeenCalled(); - expect(component.afterViewInitialProcesses).toHaveBeenCalled(); -}); - - it('should test afterViewInitialProcesses method', () => { - component.DashboardReportObj.length = 0; - component.reportMode = "Regular"; - component.initCnt = 0; - component.afterViewInitialProcesses(); - - expect(component.showMoreVert).toEqual(false); - expect(component.displayedColumnsArr).toEqual(new Array()); - expect(component.displayedRowObj).toEqual(new Array()); - expect(component.displayedColumns).toEqual(new Array()); - expect(component.formFieldList).toEqual(new Array()); - expect(component.showSpinner).toEqual(true); - expect(component.isReady).toEqual(false); - expect(component.NEWdisplayedColumns).toEqual(new Array()); - }); - - it('should test showError method', () => { - let errmsg = "errormessage"; - let stcktrace = "stacktrace"; - component.showError("test"); - expect(component.errorMessage).toEqual("test"[errmsg]); - expect(component.stackTrace).toEqual("test"[stcktrace]); - expect(component.error).toEqual(true); - expect(component.showSpinner).toEqual(false); - }); - - it('should test linkToReport', () => { - component.linkToReport("test", "abc"); - }) - - it('should test linkToMail', () => { - component.linkToMail("test"); - }) - - it('should test openOptions method', () => { - component.openOptions(); - expect(component.openOptionsFlag).toEqual(component.openOptionsFlag); - }); - - - it('should test applyFilter method', () => { - let filterValue = "test" - component.applyFilter(filterValue); - expect(component.dataSource.filter).toEqual(filterValue.trim().toLowerCase()); - }); - - it('should test the ngOnChanges first If condition', () => { - change = {}; - component.reportMode !== "Regular" - component.initCnt = 1; - component.TriggerFFArr.length = 0; - component.ngOnChanges(change); - expect(component.showMoreVert).toEqual(false); - expect(component.initCnt).toEqual(1); - expect(component.showDashboardReport).toEqual(false); - expect(component.displayedRowObj).toEqual(new Array()); - expect(component.displayedColumns).toEqual(new Array()); - expect(component.formFieldList).toEqual(new Array()); - expect(component.showSpinner).toEqual(true); - expect(component.NEWdisplayedColumns).toEqual(new Array()); - expect(component.isReady).toEqual(false); - }); - - it('should test initialProcess method', () => { - component.DashboardReportObj.length = 1; - component.initialProcesses(); - }); - - // it('should test postFetchingReportDataFn method', () => { - // let response: any; - // component.postFetchingReportDataFn(response); - // }) - - // it('should test ngOnChanges subscribe method', () => { - // spyOn(component, 'ngOnChanges').and.callThrough(); - // component.ngOnChanges(change); - // expect(component.ngOnChanges).toHaveBeenCalled(); - // }) - - // it('should test postFetchingReportDataFn method', () => { - // let obj: any; - // component.postFetchingReportDataFn(obj); - // }) - -}); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts deleted file mode 100644 index 1142c318..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run-report/run-report.component.ts +++ /dev/null @@ -1,690 +0,0 @@ -import { - AfterViewInit, - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - ElementRef, - Input, - OnInit, - SimpleChanges, - ViewChild -} from '@angular/core'; -import { MatPaginator } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; -import { ActivatedRoute, Router } from '@angular/router'; -import { HttpClient } from '@angular/common/http'; -import { environment } from '../../../../../../../environments/environment'; -import { RunService } from '../run.service'; -import { GridsterConfig, GridsterItem, GridType } from 'angular-gridster2'; -import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; -import { DisplayHtml } from '../../display-html'; -import { FormControl } from '@angular/forms'; -import { NgbModal } from '@ng-bootstrap/ng-bootstrap'; -import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component'; - -export interface PeriodicElement { - -} - -const ELEMENT_DATA: PeriodicElement[] = [{}]; - -@Component({ - selector: 'app-run-report', - templateUrl: './run-report.component.html', - styleUrls: ['./run-report.component.css'], - changeDetection: ChangeDetectionStrategy.OnPush -}) -export class RunReportComponent implements OnInit, AfterViewInit { - @Input('reportId') inputReportId: string; - @Input('reportMode') reportMode: string; - @Input('queryString') queryString: string; - @Input('DashboardReportObj') DashboardReportObj: Array<GridsterItem>; - @Input('TriggerFFArr') TriggerFFArr: string[]; - @Input('hitCnt') hitCnt: number; - @Input('runAgain') runAgain: string; - @Input('groupSelectValue') groupSelectValue: string; - @Input('chartType') chartType: string; - @ViewChild('iframe') iframe: ElementRef; - @ViewChild(MatPaginator, { static: false } as any) paginator: MatPaginator; - @ViewChild(MatSort, { static: false } as any) sort: MatSort; - dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA); - displayedColumns: string[]; - IncomingReportId: string; - displayedColumnsArr: string[]; - displayedRowObj: PeriodicElement[]; - formFieldPresent: boolean; - showSpinner: boolean; - formFieldList: {}[]; - isReady: boolean; - responseFormFieldListLength: number; - NEWdisplayedColumns: string[]; - initCnt: number; - reportName: string; - showDashboardReport: boolean; - checkCnt: number; - options: GridsterConfig; - dashboard: Array<GridsterItem> = []; - openOptionsFlag: boolean; - showMoreVert: boolean; - errorMessage = ''; - stackTrace = ''; - error = false; - environment: any; - initialQueryString: string; - initCounter: number; - runButtonHitCnt: number; - chartRunUrl: string; - url: SafeResourceUrl; - replaceDisplayValue: String; - nodeName: string; - uploadId: string; - ecgi: string; - lac: string; - cid: string; - displayTotal: any[]; - totalRecords: number; - pageSize: number; - download_in_progress: boolean; - commentCtrl = new FormControl(''); - isChartAvailable = false; - timeTaken = '...'; - saveResponseObj: any; - showBackButton = false; - - constructor(private _http: HttpClient, - private _route: ActivatedRoute, - private _runService: RunService, - private _router: Router, - private changeDetectorRefs: ChangeDetectorRef, - public sanitizer: DomSanitizer) { - this.displayedColumnsArr = []; - this.displayedRowObj = []; - this.displayedColumns = []; - this.formFieldList = []; - this.showSpinner = true; - this.isReady = false; - this.NEWdisplayedColumns = []; - this.initCnt = 0; - this.checkCnt = 0; - this.showDashboardReport = false; - this.openOptionsFlag = false; - this.showMoreVert = false; - this.environment = environment; - this.initCounter = 0; - this.runButtonHitCnt = 0; - this.displayTotal = []; - this.totalRecords = 0; - this.pageSize = 0; - this.download_in_progress = false; - - } - - ngOnChanges(changes: SimpleChanges) { - if (this.reportMode !== 'Regular' && this.initCnt > 0 && changes['runAgain']) { - this.showMoreVert = false; - if (changes['queryString']) { - this.queryString = changes['queryString']['currentValue']; - } - if (this.queryString !== this.initialQueryString) { - this.initCnt = 1; - this.showDashboardReport = false; - this.dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA); - this.displayedColumnsArr = []; - this.displayedRowObj = []; - this.displayedColumns = []; - this.formFieldList = []; - this.showSpinner = true; - this.isReady = false; - this.NEWdisplayedColumns = []; - this.displayTotal = []; - this.isChartAvailable = false; - this.timeTaken = '...'; - const startDate: Date = new Date(); - const startTime = startDate.getTime(); - this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - this.changeDetectorRefs.detectChanges(); - } else { - this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + - this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0'; - if (this.reportMode !== 'FormField') { - this.postFetchingReportDataFn(response, false); - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.showMoreVert = true; - this.showDashboardReport = true; - this.errorMessage = ''; - this.error = false; - } else { - this.postFetchingReportDataFn(response, false); - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.showMoreVert = true; - this.errorMessage = ''; - this.error = false; - } - } - }); - } - } else { - } - if (this.initialQueryString !== this.queryString && this.initCounter > 0 && this.hitCnt !== this.runButtonHitCnt) { - this.runButtonHitCnt = this.hitCnt; - this.initialQueryString = this.queryString; - this.initialProcesses(); - } else { - this.runButtonHitCnt = this.hitCnt; - } - - } - - ngOnInit() { - this.dataSource.paginator = this.paginator; - this.dataSource.sort = this.sort; - this.dataSource.data = this.displayedRowObj; - this.initialProcesses(); - this.errorMessage = ''; - this.error = false; - } - - initialProcesses() { - if (this.DashboardReportObj.length > 0) { - this.dashboard = this.DashboardReportObj; - this.options = { - gridType: GridType.ScrollVertical, - margin: 10, - outerMargin: true, - outerMarginTop: 10, - outerMarginRight: 10, - outerMarginBottom: 5000, - outerMarginLeft: 10, - scrollSensitivity: 10, - scrollSpeed: 20, - emptyCellDragMaxCols: null, - emptyCellDragMaxRows: null, - ignoreContentClass: 'gridster-item-content', - enableOccupiedCellDrop: true, - ignoreMarginInRow: false, - draggable: { - enabled: true, - }, - resizable: { - enabled: true, - }, - swap: true, - pushItems: true, - disablePushOnDrag: false, - disablePushOnResize: false, - pushDirections: { north: true, east: true, south: true, west: true }, - pushResizeItems: true, - disableWindowResize: true, - disableWarnings: false, - scrollToNewItems: true, - enableDropToAdd: true, - enableEmptyCellDrop: true, - minCols: 2, - minRows: 2, - }; - this._runService.getDashboardReportFormFields(this.inputReportId) - .subscribe((dashboardFormFields) => { - this.download_in_progress = true; - this._runService.runDashboardReport(this.inputReportId, this.queryString) - .subscribe((runDashboardReportResp) => { - }); - this.download_in_progress = false; - }); - - - this.showDashboardReport = true; - - } - this.hitCnt = this.runButtonHitCnt; - this.initialQueryString = this.queryString; - this.initCounter++; - } - - ngAfterViewInit() { - this.afterViewInitialProcesses(); - } - - afterViewInitialProcesses() { - if (sessionStorage.length > 0) { - this.showBackButton = true; - } else { - this.showBackButton = false; - } - if (this.DashboardReportObj.length === 0) { - if (this.reportMode === 'Regular' && this.initCnt == 0) { - this.showMoreVert = false; - this.dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA); - this.displayedColumnsArr = []; - this.displayedRowObj = []; - this.displayedColumns = []; - this.formFieldList = []; - this.showSpinner = true; - this.isReady = false; - this.NEWdisplayedColumns = []; - this.timeTaken = '...'; - const startDate: Date = new Date(); - const startTime = startDate.getTime(); - this._runService.getReportData(this.inputReportId) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - this.changeDetectorRefs.detectChanges(); - } else { - this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + - this.inputReportId + '&refresh=Y&display_content=Y&r_page=0'; - this.postFetchingReportDataFn(response, false); - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.showMoreVert = true; - } - }); - } else { - this.showMoreVert = false; - this.dataSource = new MatTableDataSource<PeriodicElement>(ELEMENT_DATA); - this.displayedColumnsArr = []; - this.displayedRowObj = []; - this.displayedColumns = []; - this.formFieldList = []; - this.showSpinner = true; - this.isReady = false; - this.NEWdisplayedColumns = []; - this.timeTaken = '...'; - const startDate: Date = new Date(); - const startTime = startDate.getTime(); - if (localStorage.getItem(this.inputReportId)) { - this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + - this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0'; - this.postFetchingReportDataFn(JSON.parse(localStorage.getItem(this.inputReportId)), false); - this.saveResponseObj = JSON.parse(localStorage.getItem(this.inputReportId)); - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.showMoreVert = true; - localStorage.removeItem(this.inputReportId); - } else { - this._runService.getReportDataWithFormFields(this.queryString, this.inputReportId) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - this.changeDetectorRefs.detectChanges(); - } else { - this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + - this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=0'; - this.saveResponseObj = response; - this.postFetchingReportDataFn(response, false); - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.showMoreVert = true; - } - }); - } - } - } else { - this.showMoreVert = true; - this.showSpinner = false; - } - this.errorMessage = ''; - this.error = false; - this.initCnt = 1; - } - - showError(Errresponse: any) { - this.errorMessage = Errresponse['errormessage']; - this.stackTrace = Errresponse['stacktrace']; - this.error = true; - this.showSpinner = false; - this.isChartAvailable = false; - } - - postFetchingReportDataFn(response: any, isPageChange: boolean) { - this.pageSize = 0; - this.totalRecords = 0; - this.displayedColumnsArr = []; - this.displayedColumns = []; - this.formFieldPresent = false; - this.responseFormFieldListLength = 0; - this.reportName = response['reportName']; - let rdc_cntr = 0; - while (response['reportDataColumns'][rdc_cntr]) { - const columnTitle = response['reportDataColumns'][rdc_cntr]['columnTitle']; - const columnId = response['reportDataColumns'][rdc_cntr]['colId']; - this.displayedColumnsArr.push(columnTitle + ',' + columnId); - rdc_cntr++; - } - - if (response['chartWizardAvailable'] === true && this.chartType !== 'none') { - this.isChartAvailable = true; - this.iframe.nativeElement.setAttribute('src', this.chartRunUrl); - } - - 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++; - } - this.pageSize = response['pageSize']; - for (let cntr = 0; cntr < this.displayedColumnsArr.length; cntr++) { - const columnArrId = this.displayedColumnsArr[cntr].split(',')[1]; - this.displayedColumns.push(columnArrId); - } - this.totalRecords = 0; - this.totalRecords = response['totalRows']; - this.showSpinner = false; - if (!isPageChange) { - this.paginator.length = this.totalRecords; - this.paginator.pageSize = this.pageSize; - this.paginator.pageIndex = 0; - } - this.dataSource.data = this.displayedRowObj; - this.dataSource.sort = this.sort; - - } - - linkToReport(reportID: string, queryParameters: string) { - localStorage.setItem(this.inputReportId, JSON.stringify(this.saveResponseObj)); - if (sessionStorage.length === 0) { - sessionStorage.setItem('1', this.inputReportId + '|' + this.queryString); - } else { - let length = sessionStorage.length; - length++; - sessionStorage.setItem(length.toString(), this.inputReportId + '|' + this.queryString); - } - this._router.navigate(['v2/app/run', reportID, queryParameters]); - } - - - - linkToMail(mailId: string) { - const email = 'mailto:' + mailId; - window.location.href = email; - } - - openOptions() { - this.openOptionsFlag = !this.openOptionsFlag; - } - - downloadReport(contentType: string, extension: string) { - - if (this.showDashboardReport === false) { - this.download_in_progress = true; - this._runService.downloadReport(this.inputReportId, extension) - .subscribe((responseExcel) => { - - this.downLoadFile(responseExcel, contentType, extension, ''); - this.download_in_progress = false; - }); - } else { - this._runService.getDashboardReportFormFields(this.inputReportId) - .subscribe((dashboardFormFields) => { - this.download_in_progress = true; - this._runService.runDashboardReport(this.inputReportId, this.queryString) - .subscribe((runDashboardReportResp) => { - this._runService.downloadDashboardReportExcel(this.inputReportId) - .subscribe((responseDownloadDashboardReport) => { - this.downLoadFile(responseDownloadDashboardReport, contentType, extension, 'Dashboard'); - }); - }); - this.download_in_progress = false; - }); - } - } - - downloadSinglePage(contentType: string, extension: string) { - this.download_in_progress = true; - this._runService.downloadSinglePageReport(this.inputReportId, extension) - .subscribe((responseExcel) => { - - this.downLoadFile(responseExcel, contentType, extension, ''); - this.download_in_progress = false; - }); - } - - downLoadFile(data: any, type: string, extension: string, reportType: string) { - const blob = new Blob([data], { type: type }); - const date = new Date(); - const dateStr = - ('00' + (date.getMonth() + 1)).slice(-2) + - ('00' + date.getDate()).slice(-2) + - date.getFullYear() + - ('00' + date.getHours()).slice(-2) + - ('00' + date.getMinutes()).slice(-2) + - ('00' + date.getMilliseconds()); - let fileName = this.reportName + dateStr + '.' + extension; - if (reportType === 'Dashboard') { - fileName = ''; - fileName = reportType + '_' + this.inputReportId + '_' + dateStr + '.' + extension; - } - if (window.navigator.msSaveOrOpenBlob) { - window.navigator.msSaveBlob(blob, fileName); - } else { - const anchor = window.document.createElement('a'); - anchor.href = window.URL.createObjectURL(blob); - anchor.download = fileName; - document.body.appendChild(anchor); - anchor.click(); - document.body.removeChild(anchor); - window.URL.revokeObjectURL(anchor.href); - } - } - - applyFilter(filterValue: string) { - this.dataSource.data = this.displayedRowObj; - this.dataSource.sort = this.sort; - if (filterValue === '' || filterValue === null) { - } else { - this.dataSource.filter = filterValue.trim().toLowerCase(); - } - } - - setStyle(rowData: string) { - let styles = ''; - if (rowData.split('|')[0] === 'linkToReport') { - styles = rowData.split('|')[4]; - } else if (rowData.split('|')[0] === 'linkToMail') { - styles = rowData.split('|')[3]; - } else { - styles = rowData.split('|')[1]; - } - if (styles.includes('{')) { - return JSON.parse(styles); - } else { - return {}; - } - } - - - - getDisplayTotal(keys: string) { - if (this.displayTotal.length > 0) { - return this.displayTotal[0][keys].displayValue; - } else { - return ''; - } - } - - onPaginationChange(event: any) { - if (this.DashboardReportObj.length === 0) { - if (this.reportMode === 'Regular' && this.initCnt === 0) { - this.showMoreVert = false; - this.displayedColumnsArr = []; - this.displayedRowObj = []; - this.displayedColumns = []; - this.formFieldList = []; - this.showSpinner = true; - this.isReady = false; - this.NEWdisplayedColumns = []; - this.isChartAvailable = false; - this.timeTaken = '...'; - const startDate: Date = new Date(); - const startTime = startDate.getTime(); - this._runService.getReportDataWithPageNo(this.inputReportId, event.pagenum) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - this.changeDetectorRefs.detectChanges(); - } else { - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + - this.inputReportId + '&refresh=Y&display_content=Y&r_page=' + event.pagenum; - this.postFetchingReportDataFn(response, true); - this.showMoreVert = true; - } - }); - } else { - this.showMoreVert = false; - this.displayedColumnsArr = []; - this.displayedRowObj = []; - this.displayedColumns = []; - this.formFieldList = []; - this.showSpinner = true; - this.isReady = false; - this.NEWdisplayedColumns = []; - this.isChartAvailable = false; - this.timeTaken = '...'; - const startDate: Date = new Date(); - const startTime = startDate.getTime(); - this._runService.getReportDataWithFormFieldsWithPageNo(this.queryString, this.inputReportId, event.pageIndex) - .subscribe((response) => { - if (response['errormessage']) { - this.showError(response); - this.changeDetectorRefs.detectChanges(); - } else { - const endDate: Date = new Date(); - const endTime = endDate.getTime(); - this.timeTaken = ((endTime - startTime) / 1000).toString(); - this.chartRunUrl = environment.baseUrl + 'raptor.htm?action=chart.run&c_master=' + - this.inputReportId + this.queryString + '&refresh=Y&display_content=Y&r_page=' + event.pagenum; - this.postFetchingReportDataFn(response, true); - this.showMoreVert = true; - } - }); - } - } else { - this.showMoreVert = true; - this.showSpinner = false; - } - this.errorMessage = ''; - this.error = false; - this.initCnt = 1; - } - - 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('&'); - 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; - } - - takeToReport(queryString: string, reportID: string) { - this._router.navigate(['v2/app/run', reportID, queryString, this.groupSelectValue]); - } - - goBack() { - const length = sessionStorage.length; - let repId = ''; - let queryString = ''; - if (length > 1) { - let split = []; - split = sessionStorage.getItem((length).toString()).split('|'); - repId = split[0]; - queryString = split[1]; - sessionStorage.removeItem((length).toString()); - } else if (length === 1) { - let split = []; - split = sessionStorage.getItem('1').split('|'); - repId = split[0]; - queryString = split[1]; - sessionStorage.removeItem('1'); - } - localStorage.removeItem(this.inputReportId); - this._router.navigate(['v2/app/run', repId, queryString]); - } - -} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.css deleted file mode 100644 index 89e09a51..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.css +++ /dev/null @@ -1,497 +0,0 @@ -/* .left { - width: auto; - float: left; - text-align: right; -} -.right { - width: auto; - - float: left; -} */ - -h1, -h2, -h3, -h4, -h5, -h6 { - font-weight: normal; - text-rendering: optimizeLegibility; - margin: 0; - line-height: 1; } - -mat-icon{ - color: #006496; - cursor: pointer; -} - -/* .tab-pane{ - padding-right: 130px; - padding-left: 120px; - color: rgba(0, 0, 0, 0.603) -} */ - -.boxMargin{ - - width: auto; -} - -mat-button-toggle{ - display: block; - width: 400px; - border-radius: 5px; -} - -input { - width: 400px; - height: 20px; -} - -.tab-content{ - margin-right: 20px; - /* background-color: #006496; */ - color: rgb(0, 0, 0); -} - -.stdForm{ - margin-left: 20px; -} - -.field-group { - position: relative; - display: block; -} - -label + .field-group, label + .input-append, label + .row, label + .row-nowrap, label + .form-row { - margin-top: 5px; -} - -textarea { - display: block; - width: 400px; - max-width: 50%; - padding: 15px; -} - -select{ - display: block; - width: 400px; - max-width: 400px; - padding: 15px; - background-color: #cfcfcf7a -} - -.webform-component-my-select select { - height: 200px; -} - -.checkbox .skin { - background-color: #fff; - border: 1px solid #d2d2d2; - border-radius: 3px; - display: inline-block; - height: 24px; - width: 24px; - position: absolute; - left: 0; - top: 0; -} - -i, em { - font-family: "Omnes-ECOMP-W02-Italic", Arial; - font-style: normal; -} - - -.btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - - -a.btn { - vertical-align: middle; } - a.btn:hover { - text-decoration: none; } - -.field-group + .btn { - margin-left: 20px; } - -.btn-primary { - border-color: #ea7400 transparent #d16500; - background-color: #ea7400 transparent #d16500; - background: linear-gradient(to bottom, #ea7400 0%, #d16500 100%); - color: #ffffff; - font-family: "Omnes-ECOMP-W02", Arial; - font-weight: bold; } - .btn-primary:hover { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-primary:focus { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-primary:active { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - -.btn-arrow { - font-family: "Omnes-ECOMP-W02", Arial; - font-size: 1.6rem; - font-weight: normal; - background-color: transparent; - border: none; - padding: 5px 0 0; - top: -4px; - color: #333333; - position: relative; } - .btn-arrow:hover { - text-decoration: underline; } - .btn-arrow:hover .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:hover .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:hover .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:hover .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow:focus { - text-decoration: underline; - outline: 1px dotted #666; } - .btn-arrow:focus .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:focus .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:focus .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:focus .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow:active .btn-primary { - text-decoration: none; - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #d16500 0%, #ea7400 100%); } - .btn-arrow:active .btn-secondary { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-arrow:active .btn-alt { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); } - .btn-arrow:active .btn-specialty { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-arrow .btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-arrow .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-arrow::-moz-focus-inner { - padding: 0; - border: 0; } - .btn-arrow .btn { - border: 1px solid transparent; - border-radius: 100%; - height: 36px; - margin-bottom: 0; - margin-right: 7px; - max-width: 36px; - min-width: 20px; - padding: 0; - margin-top: -4px; - vertical-align: middle; - width: 36px; } - .btn-arrow .btn .icon-primary-left { - bottom: 0; - display: block; - height: 100%; - left: 0; - line-height: 0; - position: absolute; - right: 0; - text-indent: 0; - top: 0; } - .btn-arrow .btn .icon-primary-left:before { - position: absolute; - font-size: 1.6rem; - left: 1px; - top: 9px; } - .btn-arrow .btn .icon-primary-right { - bottom: 0; - display: block; - height: 100%; - left: 0; - line-height: 0; - position: absolute; - right: 0; - text-indent: 0; - top: 0; - color: #ffffff; } - .btn-arrow .btn .icon-primary-right:before { - position: absolute; - font-size: 1.6rem; - left: 17px; - top: 9px; } - .btn-arrow .btn.btn-primary .icon-primary-left { - color: #fff; } - .btn-arrow .btn.btn-primary .icon-primary-right { - color: #fff; } - .btn-arrow .btn.btn-alt .icon-primary-left { - color: #fff; } - .btn-arrow .btn.btn-alt .icon-primary-right { - color: #fff; } - .btn-arrow .btn.btn-secondary { - border: 1px solid #d2d2d2; } - .btn-arrow .btn.btn-secondary .icon-primary-left { - color: #0568ae; } - .btn-arrow .btn.btn-secondary .icon-primary-right { - color: #0568ae; } - .btn-arrow .btn.btn-small { - height: 20px; - max-width: 20px; - min-width: 20px; - width: 20px; - top: -1px; } - .btn-arrow .btn.btn-small .icon-primary-left:before { - font-size: 5px; - top: 4px; - left: 0; } - .btn-arrow .btn.btn-small .icon-primary-right:before { - font-size: 5px; - top: 4px; - left: 10px; } - .btn-arrow .btn.btn-large .icon-primary-left:before { - font-size: 112%; - top: 12px; - left: 23px; } - .btn-arrow .btn.btn-large .icon-primary-right:before { - font-size: 112%; - top: 12px; - left: 23px; } - -.btn-secondary { - border: 1px solid #d2d2d2; - background-color: #f2f2f2; - background: linear-gradient(to bottom, #fcfcfc 0%, #f2f2f2 100%); - color: #0568ae; - box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.15); - padding: 14px 18px 11px 17px; } - .btn-secondary:hover { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-secondary:focus { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - .btn-secondary:active { - color: #0568ae; - outline-color: #000000 !important; - background: linear-gradient(to bottom, #f2f2f2 0%, #fcfcfc 100%); } - -.btn-alt { - border-color: #087ac2 transparent #0568ae; - background-color: #0568ae; - background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); - color: #ffffff; } - .btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - .btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); } - -.btn-specialty { - border-color: #008744 transparent #007a3e; - background-color: #007a3e; - background: linear-gradient(to bottom, #008744 0%, #007a3e 100%); - color: #ffffff; } - .btn-specialty:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-specialty:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - .btn-specialty:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #007a3e 0%, #008744 100%); } - -.btn-clear { - background: transparent !important; - border-color: transparent !important; - font-weight: normal; - font-family: "Omnes-ECOMP-W02", Arial; - box-shadow: none; - text-decoration: none; - color: #0568ae; } - .btn-clear:focus { - text-decoration: underline; } - .btn-clear:hover { - text-decoration: underline; } - -.card{ - border-radius: 5px; -} - -.card-header{ - height: 50px; -} - -.card-body{ - height: 150px; -} - -.card-footer{ - height: 50px; -} - -.dialog__close-btn { - border: 0; - background: #087ac2; - color: #ffffff; - position: absolute; - top: 8px; - right: 8px; - font-size: 1.2em; - display: block; - border: #087ac2 2px solid; -} - -.modalTitle{ - font-size: 35px; -} - - -.full-width-table { - width: 100%; -} - - -.app-data-table { - margin-top: 35px; - /* margin-left: 250px; - margin-right: 250px; */ - -} - -.app-data-table1 { - overflow: scroll; - width: 1780px; - height: 550px; -} - -th{ - /* background-color: #006496; */ - color: rgb(0, 0, 0); - font-size: 15px; - border-radius: 2px; - height: 35px; -} - -tr:nth-child(even) { - /* background-color: #dddddd; */ - font-size: 2px; - height: 35px; - border-radius: 4px; - -} - -tr:nth-child(odd) { - font-size: 2px; - height: 35px; - border-radius: 4px; -} - - -.card{ - border-radius: 5px; - -} - -.card-header{ - height: 50px; -} - -.card-body{ - height: 150px; -} - -.card-footer{ - height: 50px; - margin-right: 10px; -} - -.dialog__close-btn { - border: 0; - background: #087ac2; - color: #ffffff; - position: absolute; - top: 8px; - right: 8px; - font-size: 1.2em; - display: block; - border: #087ac2 2px solid; -} - -.modalTitle{ - font-size: 35px; -}
\ 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.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.html deleted file mode 100644 index bd765038..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.html +++ /dev/null @@ -1,12 +0,0 @@ - -<div class="stdForm"> - <br/> - <div class="tab-content"> - <h3>Step {{stepNo}} - Report Run</h3> - </div> - <br/> - <div *ngIf="!toggle"> - <button class="btn btn-alt btn-small" (click)="runReport()">Run Report</button> - </div> - -</div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.spec.ts deleted file mode 100644 index 3aa4713f..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.spec.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { RunComponent } from './run.component'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { RouterTestingModule } from '@angular/router/testing'; - -describe('RunComponent', () => { - let component: RunComponent; - let fixture: ComponentFixture<RunComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ RunComponent ], - imports: [HttpClientTestingModule, RouterTestingModule] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(RunComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); - - it('should test ngOnInit method', () => { - component.reportType = "Dashboard"; - component.ngOnInit(); - expect(component.stepNo).toEqual("4"); - - component.reportType = "test"; - component.ngOnInit(); - expect(component.stepNo).toEqual("8"); - }); - -}); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts deleted file mode 100644 index 3d339b70..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.component.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { Component, OnInit, Input } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; -import { HttpClient } from '@angular/common/http'; - -@Component({ - selector: 'app-run', - templateUrl: './run.component.html', - styleUrls: ['./run.component.css'] -}) -export class RunComponent implements OnInit { - - toggle : boolean; - IncomingReportId : string; - stepNo : string; - - @Input("reportId") reportId1 : string; - @Input("reportType") reportType : string; - - - - constructor(private _http : HttpClient, private _route : ActivatedRoute, private router : Router) { - this.toggle = false; - } - - ngOnInit() { - - if(this.reportType === "Dashboard") - { - this.stepNo= "4"; - } - else - { - this.stepNo= "8"; - } - - } - - runReport() - { - this.toggle = true; - - this._route.params.subscribe(params => { - - this.IncomingReportId = params["reportId"]; - this.reportId1 = params["reportId"]; - }); - - this.router.navigate(['v2/app/run', this.reportId1]); - - } - -} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.spec.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.spec.ts deleted file mode 100644 index 45bf2433..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.spec.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { TestBed } from '@angular/core/testing'; - -import { RunService } from './run.service'; -import { HttpClientTestingModule } from '@angular/common/http/testing'; -import { HttpClient } from '@angular/common/http'; -import { environment } from 'src/environments/environment'; - -describe('RunService', () => { - let service: RunService; - - beforeEach(() => - { - TestBed.configureTestingModule({ - imports: [HttpClientTestingModule], - providers: [HttpClient, HttpClientTestingModule, RunService] - }); - - service = TestBed.get(RunService); -}); - - it('should be created', () => { - const service: RunService = TestBed.get(RunService); - expect(service).toBeTruthy(); - }); - - it('should getReportData', () => { - service.getReportData("test").subscribe((res) => { - expect(res).toBe(environment); - }); - }); - - it('should getReportDataWithFormFields', () => { - service.getReportDataWithFormFields("just", "testing").subscribe((res) => { - expect(res).toBe(environment); - }); - }); - - it('should getDefinitionPageDetails', () => { - service.getDefinitionPageDetails(1).subscribe((res) => { - expect(res).toBe(environment); - }); - }); - - it('should refreshFormFields', () => { - service.refreshFormFields("just", "testing").subscribe((res) => { - expect(res).toBe(environment); - }); - }); - - it('should getFormFieldGroupsData', () => { - service.getFormFieldGroupsData("test").subscribe((res) => { - expect(res).toBe(environment); - }); - }); - - it('should downloadReportExcel', () => { - service.downloadReportExcel("test").subscribe((res) => { - expect(res).toBe(new Blob); - }); - }); -}); diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.ts deleted file mode 100644 index 6e44a698..00000000 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/run/run.service.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpHeaders } from '@angular/common/http'; -import { Observable, throwError } from 'rxjs'; -import { retry, catchError } from 'rxjs/operators'; -import { environment } from '../../../../../../environments/environment'; -import { HtmlParser } from '@angular/compiler'; - -@Injectable({ - providedIn: 'root' -}) -export class RunService { - finalArr: any; - finalResponseArr: any; - - constructor(private _http: HttpClient) { - - - } - - getReportData(reportId: string): Observable<any> { - return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + '&refresh=Y'); - } - - getReportDataWithFormFields(queryString: string, reportId: string): Observable<any> { - return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + queryString + '&refresh=Y&display_content=Y&r_page=0'); - } - - getReportDataWithPageNo(reportId: string, pageNo: string): Observable<any> { - if (!pageNo || pageNo === null) { - pageNo = '0'; - } - return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' - + reportId + '&refresh=Ydisplay_content=Y&r_page=' + pageNo); - } - - getReportDataWithFormFieldsWithPageNo(queryString: string, reportId: string, pageNo: string): Observable<any> { - if (!pageNo || pageNo === null) { - pageNo = '0'; - } - return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' - + reportId + queryString + '&refresh=Y&display_content=Y&r_page=' + pageNo); - } - - getDefinitionPageDetails(IncomingReportId: number): Observable<any> { - return this._http.get(environment.baseUrl + 'report/wizard/retrieve_def_tab_wise_data/' + IncomingReportId, { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }); - } - - refreshFormFields(reportId: string, queryString: string): Observable<any> { - return this._http.get(environment.baseUrl + 'raptor.htm?action=report.formfields.run.container&c_master=' + reportId + queryString); - } - - getFormFieldGroupsData(reportId: string): Observable<any> { - return this._http.get(environment.baseUrl + 'report/wizard/get_formfield_groups_data/' + reportId); - } - - downloadReportExcel(reportId: string): Observable<Blob> { - return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_dowload=true', { responseType: 'blob' }); - } - - downloadReport(reportId: string, type: string): Observable<Blob> { - if (type === 'xlsx') { - return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_download=false', { responseType: 'blob' }); - } else if (type === 'pdf') { - return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.pdf.session&page_download=false', { responseType: 'blob' }); - } - } - - downloadSinglePageReport(reportId: string, type: string): Observable<Blob> { - return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session&page_download=true', { responseType: 'blob' }); - - } - - - getDashboardReportFormFields(reportId: string): Observable<any> { - return this._http.get(environment.baseUrl + 'raptor/dashboard/run/' + reportId); - } - - runDashboardReport(reportId: string, queryString: string) { - return this._http.get(environment.baseUrl + 'raptor.htm?action=report.run.container&c_master=' + reportId + queryString + '&refresh=Y&display_content=Y&r_page=0', { responseType: 'text' }); - } - - downloadDashboardReportExcel(reportId: string): Observable<Blob> { - return this._http.get(environment.baseUrl + 'raptor.htm?c_master=' + reportId + '&r_action=report.download.excel.session', { responseType: 'blob' }); - } - - proceedWithLoad(object: Object) { - const headers = new HttpHeaders({ - 'Content-Type': 'application/json' - }); - return this._http.post(environment.baseUrl + 'proceed-with-load', object, { headers }); - } - - onDeleteFromUploadedReport(object: Object): Observable<any> { - const headers = new HttpHeaders({ - 'Content-Type': 'application/json' - }); - return this._http.post(environment.baseUrl + "delete-upload", object, { headers }); - } - onResubmitUnplannedLTEUploadedReport(object: Object): Observable<any> { - const headers = new HttpHeaders({ - 'Content-Type': 'application/json' - }); - return this._http.post(environment.baseUrl + "resubmit-unplanned-lte-upload", object, { headers }) - .pipe(retry(1), - catchError(this.handleError) - ); - } - - onAutomaticUploadedReport(): Observable<any> { - const headers = new HttpHeaders({ - 'Content-Type': 'application/json' - }); - return this._http.post(environment.baseUrl + 'automated-upload?'+'parentReportId=25633'+'&templateName=SUPER_E911_4G',{headers}) - .pipe( - retry(1), - catchError(this.handleError) - ); - - } - - onSubmitApproved(object:Object):Observable<any>{ - const headers = new HttpHeaders({ - 'Content-Type': 'application/json' - }); - - return this._http.post(environment.baseUrl + 'submit-approval',object,{headers}) - .pipe( - retry(1), - catchError(this.handleError) - ); - } - - handleError(error) { - let errorMessage = ''; - if (error.error instanceof ErrorEvent) { - // client-side error - errorMessage = `Error: ${error.error.message}`; - } else { - // server-side error - errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`; - } - window.alert(errorMessage); - return throwError(errorMessage); - } -} diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css index fb9d85b8..bf51ea3a 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.css @@ -71,7 +71,7 @@ input { line-height: normal; } -.btn { +.btns { background-color: transparent; background-clip: padding-box; border: 1px solid transparent; @@ -80,7 +80,7 @@ input { cursor: pointer; display: inline-block; font-family: "Omnes-ECOMP-W02-Medium", Arial; - font-size: 1.9rem; + font-size: 16px; font-weight: normal; line-height: 1; margin: 0 7px 10px 0; @@ -94,63 +94,17 @@ input { overflow: hidden; } -.btn:focus { - outline: 1px dotted #000; - outline-offset: -5px; -} - -.btn:last-child { - margin-right: 0; -} - -.btn::-moz-focus-inner { - padding: 0; - border: 0; -} - -.btn i[class*="icon-primary-"].icon-primary-small { - font-size: 17px; - top: -2px; -} - -.btn i[class*="icon-primary-"].icon-primary-medium { - font-size: 30px; - top: -2px; -} - -.btn i[class*="icon-primary-"].icon-primary-large { - font-size: 36px; - top: -2px; -} - -.btn-alt { +.btns-alt { border-color: #087ac2 transparent #0568ae; background-color: #0568ae; background: linear-gradient(to bottom, #087ac2 0%, #0568ae 100%); color: #ffffff; } -.btn-alt:hover { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); -} - -.btn-alt:focus { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); -} - -.btn-alt:active { - color: #ffffff; - outline-color: #ffffff !important; - background: linear-gradient(to bottom, #0568ae 0%, #087ac2 100%); -} -.btn-small { +.btns-small { padding: 10px 19px 9px 18px; - font-size: 17px; + font-size: 15px; border-radius: 8px; } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html index 270ee870..01215576 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.html @@ -9,7 +9,7 @@ <label>{{SQLmessage}}</label> </div> <div class="card-footer"> - <button (click)="showSaveSQLDialog = !showSaveSQLDialog" class="btn btn-alt btn-small close-model">Close + <button (click)="showSaveSQLDialog = !showSaveSQLDialog" class="btns btns-alt btns-small close-model">Close </button> </div> </div> @@ -38,7 +38,7 @@ </div> </div> <div class="card-footer"> - <button (click)="closeValidateModal()" class="btn btn-alt btn-small close-model">Close</button> + <button (click)="closeValidateModal()" class="btns btns-alt btns-small close-model">Close</button> </div> </div> </app-sql-validate-changes-dialog-component> @@ -57,12 +57,52 @@ <div class="field-group"> <label>Report SQL</label> <br/> <textarea [(ngModel)]="sqlText" class="defaultFontSize textarea-sql" id="sqlText" name="sqlText" type="textarea" - value="{{finalGetObj['query']}}"></textarea> + value="{{finalGetObj['query']}}" autocomplete="on"></textarea> + <b> Keyword Assistance:<br> + <a href="javascript:;" (click)="addText('SELECT')">SELECT</a> + <a href="javascript:;" (click)="addText('DISTINCT')">DISTINCT</a> + <a href="javascript:;" (click)="addText('FROM')">FROM</a> + <a href="javascript:;" (click)="addText('WHERE')">WHERE</a> + <a href="javascript:;" (click)="addText('GROUP BY')">GROUP BY</a> + <a href="javascript:;" (click)="addText('ORDER BY')">ORDER BY</a> + <a href="javascript:;" (click)="addText('ASC')">ASC</a> + <a href="javascript:;" (click)="addText('DESC')">DESC</a> + <a href="javascript:;" (click)="addText('AND')">AND</a> + <a href="javascript:;" (click)="addText('OR')">OR</a> + <a href="javascript:;" (click)="addText('NOT')">NOT</a> + <a href="javascript:;" (click)="addText('EXISTS')">EXISTS</a> + <a href="javascript:;" (click)="addText('IS')">IS</a> + <a href="javascript:;" (click)="addText('NULL')">NULL</a> + <a href="javascript:;" (click)="addText('IN')">IN</a> + <a href="javascript:;" (click)="addText('BETWEEN')">BETWEEN</a> <br> + <a href="javascript:;" (click)="addText('COUNT(')">COUNT(</a> + <a href="javascript:;" (click)="addText('SUM(')">SUM(</a> + <a href="javascript:;" (click)="addText('AVG(')">AVG(</a> + <a href="javascript:;" (click)="addText('MAX(')">MAX(</a> + <a href="javascript:;" (click)="addText('MIN(')">MIN(</a> + <a href="javascript:;" (click)="addText('NVL(')">NVL(</a> + <a href="javascript:;" (click)="addText('DECODE(')">DECODE(</a> + <a href="javascript:;" (click)="addText('SYDATE')">SYSDATE</a> + <a href="javascript:;" (click)="addText('TO_CHAR')">TO_CHAR</a> + <a href="javascript:;" (click)="addText('TO_NUMBER(')">TO_NUMBER(</a> + <a href="javascript:;" (click)="addText('TO_DATE(')">TO_DATE(</a> + <a href="javascript:;" (click)="addText('TRUNC(')">TRUNC(</a> + <a href="javascript:;" (click)="addText('ROUND(')">ROUND(</a> + <a href="javascript:;" (click)="addText('ABS(')">ABS(</a> + <a href="javascript:;" (click)="addText('SUBSTR(')">SUBSTR(</a> <br> + <a href="javascript:;" (click)="addText('REPLACE(')">REPLACE(</a> + <a href="javascript:;" (click)="addText('LOWER(')">LOWER(</a> + <a href="javascript:;" (click)="addText('UPPER(')">UPPER(</a> + <a href="javascript:;" (click)="addText('LTRM(')">LTRM(</a> + <a href="javascript:;" (click)="addText('RTRIM(')">RTRIM(</a> + <a href="javascript:;" (click)="addText('LPAD(')">LPAD(</a> + <a href="javascript:;" (click)="addText('RPAD(')">RPAD(</a> + <a href="javascript:;" (click)="addText('(linkToReport, , , )')">linkToReport</a> + </b> </div> - <br/> <div class="field-group"> <pre> - <div class="divider"></div><button (click)="validate()" class="btn btn-alt btn-small">Validate & Save</button> + <div class="divider"></div><button (click)="validate()" class="btns btns-alt btns-small">Validate & Save</button> </pre> </div> <br/> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts index afa84c63..7a547e3d 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/Report/sql/sql.component.ts @@ -36,6 +36,7 @@ export class SQLComponent implements OnInit { @Input() SQLclosable = true; @Input() Validateclosable = true; + keyWordAssistance: any[]; constructor(private _http: HttpClient, private _router: Router, private _sqlService: SqlService) { @@ -43,13 +44,20 @@ export class SQLComponent implements OnInit { this.SQLPostResponse = true; this.ValidatePostResponse = {}; this.showErrorSqlMessage = false; + this.keyWordAssistance = []; + } ngOnInit() { - this.showSpinner = true; this.showSaveSQLDialog = false; this.SQLPostResponse = true; this.ValidatePostResponse = {}; + this.keyWordAssistance.push( 'SELECT', 'DISTINCT', 'FROM', 'WHERE', + 'GROUP BY', 'HAVING', 'ORDER BY', 'ASC', 'DESC', 'AND', 'OR', 'NOT', 'EXISTS', + 'IS', 'NULL', 'IN', 'BETWEEN', 'COUNT(', 'SUM(', 'AVG(', 'MAX(', 'MIN(', 'NVL(', + 'DECODE(', 'SYSDATE', 'TO_CHAR(', 'TO_NUMBER(', 'TO_DATE(', + 'TRUNC(', 'ROUND(', 'ABS(', 'SUBSTR(', 'REPLACE(', 'LOWER(', 'UPPER(', + 'LTRM(', 'RTRIM(', 'LPAD(', 'RPAD(', 'linkToReport'); this._sqlService.getSQLTabData(this.reportId1) .subscribe((response) => { this.showSpinner = true; @@ -153,4 +161,7 @@ export class SQLComponent implements OnInit { return this.ValidateResponseString; } + addText(word: string) { + this.sqlText = this.sqlText + ' ' + word + ' '; + } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html index 7bb6729d..0295bdd6 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.html @@ -84,7 +84,7 @@ [length]="dataSource1?.data.length" [pageIndex]="0" [pageSize]="20" - [pageSizeOptions]="[20,40,60,80,100]"> + [pageSizeOptions]="[20]"> </mat-paginator> </div> </div> diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts index dfb485e1..01c1254a 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.component.ts @@ -17,7 +17,7 @@ export class ReportListComponent implements AfterViewInit, OnInit { @ViewChild( MatPaginator, { static: false } as any ) paginator: MatPaginator; @ViewChild( MatSort, { static: false } as any ) sort: MatSort; @ViewChild( MatTable, { static: false } as any ) table: MatTable<AllReportsItem>; - @Input( "reportId" ) reportId1: string; + @Input('reportId') reportId1: string; dataSource: AllReportsDataSource; dataSource1: any; finalGETObj: {}; @@ -26,7 +26,7 @@ export class ReportListComponent implements AfterViewInit, OnInit { reportIdArr: string[]; toggle: boolean; intermediateDisplayedColumns: string[]; - displayedColumns = ["rep_id", "rep_name", "descr", "owner", "create_date", "copy", "edit", "delete", "schedule", "run"]; + displayedColumns = ['rep_id', 'rep_name', 'descr', 'owner', 'create_date', 'copy', 'edit', 'delete', 'schedule', 'run']; finalRowArr: AllReportsItem[]; rowObj: any; reportId: string; @@ -47,23 +47,23 @@ export class ReportListComponent implements AfterViewInit, OnInit { this.showSpinner = true; this.dataSource = new AllReportsDataSource(); this.dataSource1 = new MatTableDataSource(); - this.intermediateDisplayedColumns = new Array(); - this.finalGETObj = new Object(); - this.finalGETObj = new Object(); - this.finalGETObjRowsArr = new Array(); - this.rowArr = new Array(); - this.reportIdArr = new Array(); + this.intermediateDisplayedColumns = []; + this.finalGETObj = {}; + this.finalGETObj = {}; + this.finalGETObjRowsArr = []; + this.rowArr = []; + this.reportIdArr = []; this.toggle = false; this.toggle1 = false; - this.finalRowArr = new Array(); + this.finalRowArr = []; this._reportListService.getAllReports() .subscribe(( responseObj ) => { this.finalGETObj = responseObj; - this.finalGETObjRowsArr = this.finalGETObj["rows"]; + this.finalGETObjRowsArr = this.finalGETObj['rows']; let j = 0; - while ( this.finalGETObj["columns"][0][j] ) { - if ( this.finalGETObj["columns"][0][j]["columnId"] !== "no" ) { - this.intermediateDisplayedColumns.push( this.finalGETObj["columns"][0][j]["columnId"] ); + while (this.finalGETObj['columns'][0][j]) { + if (this.finalGETObj['columns'][0][j]['columnId'] !== 'no') { + this.intermediateDisplayedColumns.push(this.finalGETObj['columns'][0][j]['columnId']); } j++; } @@ -71,50 +71,50 @@ export class ReportListComponent implements AfterViewInit, OnInit { let i = 0; while ( this.finalGETObjRowsArr[0][i] ) { this.rowArr = this.finalGETObjRowsArr[0][i]; - this.rowObj = new Object(); + this.rowObj = {}; let j = 0; while ( this.rowArr[j] ) { - if ( this.rowArr[j]["columnId"] === "rep_id" ) { - this.rowObj["rep_id"] = this.rowArr[j]["searchresultField"]["displayValue"]; - this.reportIdArr.push( this.rowArr[j]["searchresultField"]["displayValue"] ); + if (this.rowArr[j]['columnId'] === 'rep_id') { + this.rowObj['rep_id'] = this.rowArr[j]['searchresultField']['displayValue']; + this.reportIdArr.push(this.rowArr[j]['searchresultField']['displayValue']); } - if ( this.rowArr[j]["columnId"] === "rep_name" ) { - this.rowObj["rep_name"] = this.rowArr[j]["searchresultField"]["displayValue"]; + if (this.rowArr[j]['columnId'] === 'rep_name') { + this.rowObj['rep_name'] = this.rowArr[j]['searchresultField']['displayValue']; } - if ( this.rowArr[j]["columnId"] === "descr" ) { - this.rowObj["descr"] = this.rowArr[j]["searchresultField"]["displayValue"]; + if (this.rowArr[j]['columnId'] === 'descr') { + this.rowObj['descr'] = this.rowArr[j]['searchresultField']['displayValue']; } - if ( this.rowArr[j]["columnId"] === "owner" ) { - this.rowObj["owner"] = this.rowArr[j]["searchresultField"]["displayValue"]; + if (this.rowArr[j]['columnId'] === 'owner') { + this.rowObj['owner'] = this.rowArr[j]['searchresultField']['displayValue']; } - if ( this.rowArr[j]["columnId"] === "create_date" ) { - this.rowObj["create_date"] = this.rowArr[j]["searchresultField"]["displayValue"]; + if (this.rowArr[j]['columnId'] === 'create_date') { + this.rowObj['create_date'] = this.rowArr[j]['searchresultField']['displayValue']; } - if ( this.rowArr[j]["columnId"] === "copy" ) { - this.rowObj["copy"] = this.rowArr[j]["searchresultField"]["displayValue"]; + if (this.rowArr[j]['columnId'] === 'copy') { + this.rowObj['copy'] = this.rowArr[j]['searchresultField']['displayValue']; } - if ( this.rowArr[j]["columnId"] === "edit" ) { - this.rowObj["edit"] = this.rowArr[j]["searchresultField"]["displayValue"]; - this.rowObj["canEdit"] = this.rowArr[j]["searchresultField"]["authorized"]; + if (this.rowArr[j]['columnId'] === 'edit') { + this.rowObj['edit'] = this.rowArr[j]['searchresultField']['displayValue']; + this.rowObj['canEdit'] = this.rowArr[j]['searchresultField']['authorized']; } - if ( this.rowArr[j]["columnId"] === "delete" ) { - this.rowObj["delete"] = this.rowArr[j]["searchresultField"]["displayValue"]; - this.rowObj["canDelete"] = this.rowArr[j]["searchresultField"]["authorized"]; + if (this.rowArr[j]['columnId'] === 'delete') { + this.rowObj['delete'] = this.rowArr[j]['searchresultField']['displayValue']; + this.rowObj['canDelete'] = this.rowArr[j]['searchresultField']['authorized']; } - if ( this.rowArr[j]["columnId"] === "schedule" ) { - this.rowObj["schedule"] = this.rowArr[j]["searchresultField"]["displayValue"]; + if (this.rowArr[j]['columnId'] === 'schedule') { + this.rowObj['schedule'] = this.rowArr[j]['searchresultField']['displayValue']; } - if ( this.rowArr[j]["columnId"] === "run" ) { - this.rowObj["run"] = this.rowArr[j]["searchresultField"]["displayValue"]; + if (this.rowArr[j]['columnId'] === 'run') { + this.rowObj['run'] = this.rowArr[j]['searchresultField']['displayValue']; } j++; } @@ -134,9 +134,9 @@ export class ReportListComponent implements AfterViewInit, OnInit { ngOnInit() { sessionStorage.clear(); - const myItem = localStorage.getItem('id'); + const myItem = localStorage.getItem('notes'); localStorage.clear(); - localStorage.setItem('id', myItem); + localStorage.setItem('notes', myItem); this.toggle = false; } @@ -148,12 +148,12 @@ export class ReportListComponent implements AfterViewInit, OnInit { displayReport( reportId: string ) { this.reportId = reportId; - this._router.navigate( ["v2/app/reports", "Edit", reportId] ); + this._router.navigate(['v2/app/reports', 'Edit', reportId]); } runReport( reportId: string ) { this.reportId = reportId; - this._router.navigate( ['v2/app/run', reportId] ); + this._router.navigate(['v2/run', reportId]); } applyFilter( filterValue: string ) { @@ -187,10 +187,9 @@ export class ReportListComponent implements AfterViewInit, OnInit { this._router.navigate( ['v2/app/schedule_report', reportId] ); } - copydisplayReport(reportId : string) - { + copydisplayReport(reportId: string) { this.reportId = reportId; - this._router.navigate(["v2/app/reports", "Copy",reportId]); + this._router.navigate(['v2/app/reports', 'Copy', reportId]); } } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts index d0094ab9..88d1c84f 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/ngapp/src/app/pages/analytics/Report_List/report-list.service.ts @@ -15,6 +15,6 @@ export class ReportListService { return this._http.get(environment.baseUrl + "raptor.htm?action=report.delete&c_master=" + reportId); } getAllReports():Observable<any>{ - return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0&show_all=true"); + return this._http.get(environment.baseUrl + "raptor.htm?action=report.search.execute&r_page=0"); } } |