| <div class="home-container"> |
| <div style="display: flex; |
| padding-bottom:7px; |
| justify-content: space-between;"> |
| <div style="font-size: 22px; display: flex; align-items: center;">Monitoring</div> |
| |
| <div style="display: flex;"> |
| <button mat-icon-button [disabled]="!checkCanCreate()" style="margin-right: 10px;" data-tests-id="btn-import-mc" |
| (click)="importScreen()"> |
| <span style="width: 100%; |
| height: 100%; |
| display: flex; |
| justify-content: center; |
| align-items: center;" |
| [innerHTML]="'download' | feather:20"></span> |
| </button> |
| |
| <button mat-raised-button color="primary" (click)="createScreen()" data-tests-id="btn-create-mc" class="btn-create" |
| [disabled]="!checkCanCreate()"> |
| Create New MC |
| </button> |
| </div> |
| </div> |
| |
| <div *ngIf="showTable===true; then thenBlock else elseBlock"></div> |
| |
| <ng-template #thenBlock> |
| |
| <div *ngIf="unavailableMonitoringComponents.length > 0" data-tests-id="unavailableArea" style="color: white; background: red; padding: 1rem; border-radius: 5px; font-weight: bold; margin: 1em 0;"> |
| <div *ngFor="let item of unavailableMonitoringComponents"> |
| {{item.uuid}} |
| </div> |
| </div> |
| |
| <ngx-datatable data-tests-id="monitoringComponentTable" class="material" [rows]="store.monitoringComponents" |
| [loadingIndicator]="loadingIndicator" [columnMode]="'flex'" [headerHeight]="40" [footerHeight]="40" [limit]="12" |
| [rowHeight]="45" (selected)="onTableSelectItem($event)" [selectionType]="'single'" [selected]="selectedLine" (activate)="onTableActivate($event)"> |
| |
| <ngx-datatable-column name="Monitoring Configuration" prop="name" [flexGrow]="3"> |
| <ng-template let-row="row" let-value="value" ngx-datatable-cell-template> |
| <div> |
| <span> {{value}} </span> |
| </div> |
| </ng-template> |
| |
| </ngx-datatable-column> |
| <ngx-datatable-column name="VNFI Name" prop="vfiName" [flexGrow]="3"> |
| <ng-template let-value="value" ngx-datatable-cell-template> |
| |
| <div pTooltip="{{value}}" tooltipPosition="bottom">{{value}}</div> |
| |
| </ng-template> |
| |
| |
| </ngx-datatable-column> |
| <ngx-datatable-column name="Version" prop="version" [flexGrow]="1"></ngx-datatable-column> |
| <ngx-datatable-column name="Status" prop="status" [flexGrow]="2"></ngx-datatable-column> |
| <ngx-datatable-column name="Last Updated by" prop="lastUpdaterUserId" [flexGrow]="2"></ngx-datatable-column> |
| <ngx-datatable-column name="Actions" sortable="false" prop="id" [flexGrow]="2"> |
| <ng-template let-row="row" let-rowIndex="rowIndex" ngx-datatable-cell-template> |
| |
| <div class="activeBtnWrapper"> |
| <div class="activeBtn" *ngIf="hoveredIndex == rowIndex"> |
| |
| <button mat-icon-button *ngIf="row.submittedUuid" pTooltip="View submitted" tooltipPosition="top" (click)="viewSubmitted(row)" data-tests-id="viewSubmitted"> |
| <img src="{{imgBase}}/icon_submitted.svg" style="object-fit: contain; width:18px; height: 18px;" alt="icon_submitted"> |
| </button> |
| |
| <button *ngIf="checkCanCreate();" mat-icon-button data-tests-id="editMC" (click)="checkTableItemHoverCondition(row) && editTableItem(row)" |
| [ngClass]="{'ngx-datatable-monitoring-name': checkTableItemHoverCondition(row)}" pTooltip="Edit" |
| tooltipPosition="top"> |
| <span style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; color:#5A5A5A;" |
| [innerHTML]="'edit-3' | feather:18"></span> |
| </button> |
| |
| <div *ngIf="checkCanCreate();"> |
| <button mat-icon-button *ngIf="row.submittedUuid != null && checkReverted(row)" pTooltip="Revert" data-tests-id="revertMC" |
| tooltipPosition="top" (click)="checkTableItemHoverCondition(row) && revertMcDialog(row)"> |
| <img src="{{imgBase}}/icon_revert.svg" style="object-fit: contain; width:18px; height: 18px;" alt="icon_revert"> |
| </button> |
| </div> |
| |
| <button *ngIf="checkCanCreate();" mat-icon-button data-tests-id="tableItemsButtonDelete" |
| pTooltip="Delete" tooltipPosition="top" (click)="deleteTableItem(row, rowIndex)"> |
| <span style="width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; color:#5A5A5A;" |
| [innerHTML]="'trash-2' | feather:18"></span> |
| </button> |
| |
| </div> |
| </div> |
| </ng-template> |
| </ngx-datatable-column> |
| |
| <ngx-datatable-footer> |
| <ng-template ngx-datatable-footer-template let-rowCount="rowCount" let-pageSize="pageSize" let-selectedCount="selectedCount" |
| let-curPage="curPage" let-offset="offset" let-isVisible="isVisible"> |
| <div class="page-count" *ngIf="showTable===true"> |
| You have {{rowCount.toLocaleString()}} MC table elements |
| </div> |
| </ng-template> |
| </ngx-datatable-footer> |
| |
| </ngx-datatable> |
| |
| |
| </ng-template> |
| |
| <ng-template #elseBlock> |
| <div style="display: flex; |
| flex-direction: column; |
| justify-content: center; |
| align-items: center; |
| flex:1;"> |
| <div style="font-size: 18px;"> |
| Monitoring Configuration does not Exist |
| </div> |
| <div style="padding: 0.5em; padding-top: 1em; font-size: 13px;" data-tests-id="new-monitoring-title"> |
| A Monitoring Configuration (MC) was not yet created |
| </div> |
| <div style="font-size: 13px;"> |
| Please create a new MC to monitor the service |
| </div> |
| <div class="wrapper-btn-add-mc"> |
| <button mat-mini-fab color="primary" (click)="createScreen()" data-tests-id="btn-fab-create-mc" [disabled]="!checkCanCreate()"> |
| <span [innerHTML]="'plus' | feather:24"></span> |
| </button> |
| <span style="margin-top: 10px; font-size: 14px; " [style.color]="!checkCanCreate() ? '#ebebe4' : '#009FDB'"> |
| <p data-tests-id="btn-span-create-mc">Add First MC</p> |
| </span> |
| </div> |
| </div> |
| </ng-template> |
| </div> |