server-metrics-widget.component.html 1.3 KB

1234567891011121314151617181920212223242526
  1. <div
  2. class="d-grid"
  3. style="grid-template-columns: max-content auto"
  4. [style.grid-template-rows]="'repeat(' + dataTypes.length + ')'"
  5. [routerLink]="'/srv/' + server.id">
  6. <ng-container *ngFor="let type of dataTypes; index as i">
  7. <div class="d-inline text-uppercase flex-grow-0 pe-2" style="grid-column: 1 / span 1" [style.grid-row]="i + 1 + ' / span 1'">
  8. <fa-icon [icon]="type.type | faType" class="pe-2 status-ok"></fa-icon>{{ type.type }}
  9. </div>
  10. <div class="pt-1 pb-1 h-100" style="grid-column: 2 / span 1" [style.grid-row]="i + 1 + ' / span 1'">
  11. <div *ngIf="type.data; else loading" class="progress position-relative">
  12. <div *ngIf="type.data.avg" class="progress-bar bg-avg" role="progressbar" [style.width]="type.data.avg + '%'"></div>
  13. <div *ngIf="type.data.peak" class="progress-bar bg-peak" role="progressbar" [style.width]="type.data.peak - (type.data.avg || 0) + '%'"></div>
  14. <span *ngIf="type.subtype" class="position-absolute end-0 pe-2">:{{ type.subtype }}</span>
  15. </div>
  16. </div>
  17. </ng-container>
  18. </div>
  19. <ng-template #loading>
  20. <div class="progress">
  21. <div class="progress-bar bg-progress progress-bar-striped progress-bar-animated text-primary" role="progressbar" style="width: 100%">
  22. Loading data
  23. </div>
  24. </div>
  25. </ng-template>