+ <h3 class="control__header">xApp Control</h3>
+ <div class="spinner-container" *ngIf="dataSource.loading$ | async">
+ <mat-spinner></mat-spinner>
+ </div>
+ <table mat-table [dataSource]="dataSource" matSort multiTemplateDataRows class="control-table mat-elevation-z8">
+
+ <ng-container matColumnDef="xapp">
+ <mat-header-cell *matHeaderCellDef mat-sort-header> xApp Name </mat-header-cell>
+ <mat-cell *matCellDef="let element"> {{element.xapp}} </mat-cell>
+ </ng-container>
+
+ <ng-container matColumnDef="name">
+ <mat-header-cell *matHeaderCellDef mat-sort-header> Instance Name</mat-header-cell>
+ <mat-cell *matCellDef="let element"> {{element.instance.name}} </mat-cell>
+ </ng-container>
+
+ <ng-container matColumnDef="status">
+ <mat-header-cell *matHeaderCellDef mat-sort-header> Status </mat-header-cell>
+ <mat-cell *matCellDef="let element"> {{element.instance.status}} </mat-cell>
+ </ng-container>
+
+ <ng-container matColumnDef="ip" >
+ <mat-header-cell *matHeaderCellDef mat-sort-header> IP </mat-header-cell>
+ <mat-cell *matCellDef="let element"> {{element.instance.ip}} </mat-cell>
+ </ng-container>
+
+ <ng-container matColumnDef="port">
+ <mat-header-cell *matHeaderCellDef mat-sort-header> Port </mat-header-cell>
+ <mat-cell *matCellDef="let element"> {{element.instance.port}} </mat-cell>
+ </ng-container>
+
+ <ng-container matColumnDef="action">
+ <mat-header-cell *matHeaderCellDef> Action </mat-header-cell>
+ <!-- click on button should not expand/collapse the row -->
+ <mat-cell *matCellDef="let element" (click)="$event.stopPropagation()">
+ <button mat-icon-button (click)="controlApp(element)">
+ <mat-icon>settings</mat-icon>
+ </button>
+ <button mat-icon-button color="warn" (click)="undeployApp(element)">
+ <mat-icon>delete</mat-icon>
+ </button>
+ </mat-cell>
+ </ng-container>
+
+ <ng-container matColumnDef="expandedDetail">
+ <td mat-cell *matCellDef="let element" [attr.colspan]="displayedColumns.length">
+ <div [@messageExpand]="element == expandedElement ? 'expanded' : 'collapsed'">
+ <div>
+ txMessages:
+ </div>
+ <li *ngFor="let rxmessage of element.instance.rxMessage">
+ <span>{{rxmessage}}</span>
+ </li>
+ <div>
+ rxMessages:
+ </div>
+ <li *ngFor="let txmessage of element.instance.txMessage">
+ <span>{{txmessage}}</span>
+ </li>
+ </div>
+ </td>
+ </ng-container>
+
+ <mat-header-row *matHeaderRowDef="displayedColumns"></mat-header-row>
+ <mat-row *matRowDef="let element; columns: displayedColumns;"
+ [class.example-expanded-row]="expandedElement === element"
+ (click)="expandedElement = expandedElement === element ? null : element"></mat-row>
+ <tr mat-row *matRowDef="let row; columns: ['expandedDetail']" class="message-row"></tr>
+ </table>
+</div>
\ No newline at end of file