You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

dns-status.component.html 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <div [cgBusy]="promise">
  2. <mat-form-field>
  3. <mat-select placeholder="View by" [(value)]="viewType">
  4. <mat-option *ngFor="let viewType of viewTypes" [value]="viewType.value">
  5. {{ viewType.name }}
  6. </mat-option>
  7. </mat-select>
  8. </mat-form-field>
  9. <div *ngIf="viewType === viewTypes[0].value">
  10. <div *ngFor="let view of (dnsStatus$ | async)?.views;trackBy: trackViewByName">
  11. <h3>{{ view.name }}</h3>
  12. <mat-expansion-panel *ngFor="let zoneStatus of view.zones;trackBy: trackZoneByZone">
  13. <mat-expansion-panel-header>
  14. <mat-panel-title>
  15. <span [appStatusLed]="zoneStatus.status"></span>&nbsp;<strong>{{ zoneStatus.zone }}</strong>
  16. </mat-panel-title>
  17. <mat-panel-description>
  18. </mat-panel-description>
  19. </mat-expansion-panel-header>
  20. <table mat-table [dataSource]="zoneStatus.serverStatus" class="mat-elevation-z0" [trackBy]="trackZoneServerByServer">
  21. <ng-container matColumnDef="status">
  22. <th mat-header-cell *matHeaderCellDef> Status </th>
  23. <td mat-cell *matCellDef="let element"> <span [appStatusLed]="element.status"></span> </td>
  24. </ng-container>
  25. <ng-container matColumnDef="server">
  26. <th mat-header-cell *matHeaderCellDef> Server </th>
  27. <td mat-cell *matCellDef="let element"> {{element.server}} </td>
  28. </ng-container>
  29. <ng-container matColumnDef="soa">
  30. <th mat-header-cell *matHeaderCellDef> SOA </th>
  31. <td mat-cell *matCellDef="let element"> {{element.soa}} </td>
  32. </ng-container>
  33. <tr mat-header-row *matHeaderRowDef="['status', 'server', 'soa']"></tr>
  34. <tr mat-row *matRowDef="let row; columns: ['status', 'server', 'soa'];"></tr>
  35. </table>
  36. </mat-expansion-panel>
  37. </div>
  38. </div>
  39. <div *ngIf="viewType === viewTypes[1].value">
  40. <div *ngFor="let view of (dnsStatusPerServer$ | async)?.views;trackBy: trackViewPerServerByName">
  41. <h3>{{ view.name }}</h3>
  42. <mat-expansion-panel *ngFor="let server of view.servers;trackBy: trackServerByIp">
  43. <mat-expansion-panel-header>
  44. <mat-panel-title>
  45. <span [appStatusLed]="server.status"></span>&nbsp;<strong>{{ server.ip }}</strong>
  46. </mat-panel-title>
  47. <mat-panel-description>
  48. </mat-panel-description>
  49. </mat-expansion-panel-header>
  50. <table mat-table [dataSource]="server.zones" class="mat-elevation-z0" [trackBy]="trackZonePerServerByZone">
  51. <ng-container matColumnDef="status">
  52. <th mat-header-cell *matHeaderCellDef> Status </th>
  53. <td mat-cell *matCellDef="let element"> <span [appStatusLed]="element.status"></span> </td>
  54. </ng-container>
  55. <ng-container matColumnDef="zone">
  56. <th mat-header-cell *matHeaderCellDef> Zone </th>
  57. <td mat-cell *matCellDef="let element"> {{element.zone}} </td>
  58. </ng-container>
  59. <ng-container matColumnDef="soa">
  60. <th mat-header-cell *matHeaderCellDef> SOA </th>
  61. <td mat-cell *matCellDef="let element"> {{element.soa}} </td>
  62. </ng-container>
  63. <tr mat-header-row *matHeaderRowDef="['status', 'zone', 'soa']"></tr>
  64. <tr mat-row *matRowDef="let row; columns: ['status', 'zone', 'soa'];"></tr>
  65. </table>
  66. </mat-expansion-panel>
  67. </div>
  68. </div>
  69. <button (click)="onclick()" mat-button mat-raised-button>Reload</button>
  70. </div>