home-page.component.html 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <ng-container *ngIf="!!servers?.length; else nothing">
  2. <ul>
  3. <li *ngFor="let server of servers; index as t" class="list-unstyled">
  4. <button
  5. class="btn btn-primary dropdown-toggle"
  6. type="button"
  7. data-bs-toggle="collapse"
  8. [attr.data-bs-target]="'#data-types-' + t"
  9. aria-expanded="false">
  10. {{ server.title }}
  11. </button>
  12. <ul *ngIf="server.types?.length" class="collapse" [id]="'data-types-' + t">
  13. <li *ngFor="let type of server.types; index as i" class="list-unstyled">
  14. <button
  15. class="btn btn-primary dropdown-toggle"
  16. type="button"
  17. data-bs-toggle="collapse"
  18. [attr.data-bs-target]="'#data-table-' + i"
  19. aria-expanded="false">
  20. {{ type.type }}
  21. </button>
  22. <ul *ngIf="type.subtypes?.length; else data" class="collapse" [id]="'data-table-' + i">
  23. <li *ngFor="let sub of type.subtypes; index as j" class="list-unstyled">
  24. <button
  25. class="btn btn-primary dropdown-toggle"
  26. type="button"
  27. data-bs-toggle="collapse"
  28. [attr.data-bs-target]="'#data-table-sub-' + j"
  29. aria-expanded="false">
  30. {{ sub.type }}
  31. </button>
  32. <div *ngIf="sub.data?.length" class="collapse" [id]="'data-table-sub-' + j">
  33. <table class="table table-striped">
  34. <tbody>
  35. <tr>
  36. <th>Time</th>
  37. <th>∅ avg</th>
  38. <th>∧ peak</th>
  39. <th>Ω avail</th>
  40. </tr>
  41. <tr *ngFor="let dataset of sub.data">
  42. <td>{{ dataset.time | date: 'YYYY-MM-dd HH:mm:ss' }}</td>
  43. <td>{{ dataset.avg | number }}</td>
  44. <td>{{ dataset.peak | number }}</td>
  45. <td>{{ dataset.max | number }}</td>
  46. </tr>
  47. </tbody>
  48. </table>
  49. </div>
  50. </li>
  51. </ul>
  52. <ng-template #data>
  53. <div *ngIf="type.data?.length" class="collapse" [id]="'data-table-' + i">
  54. <table class="table table-striped">
  55. <tbody>
  56. <tr>
  57. <th>Time</th>
  58. <th>∅ avg</th>
  59. <th>∧ peak</th>
  60. <th *ngIf="type.data?.[0]?.max">Ω avail</th>
  61. </tr>
  62. <tr *ngFor="let dataset of type.data">
  63. <td>{{ dataset.time | date: 'YYYY-MM-dd HH:mm:ss' }}</td>
  64. <td>{{ dataset.avg | number }}</td>
  65. <td>{{ dataset.peak | number }}</td>
  66. <td *ngIf="dataset.max">{{ dataset.max | number }}</td>
  67. </tr>
  68. </tbody>
  69. </table>
  70. </div>
  71. </ng-template>
  72. </li>
  73. </ul>
  74. </li>
  75. </ul>
  76. </ng-container>
  77. <ng-template #nothing> Nothing to display </ng-template>