Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | 2x 373x 746x 2x 746x 6x 2x 746x 2x 2x 2x 746x 2244x 6x 2x 2x 2x 214x 5x 5x 433x 5x 5x 433x 5x 428x 1284x 856x 10x 438x 1284x 428x 428x 433x 5x 15x 428x 5x 2x 746x 746x 2x | <p-table showGridlines [value]="rows" [columns]="selectedColumns" [reorderableColumns]="true" [tableStyle]="{ 'min-width': '60rem' }" (onRowReorder)="onRowReorder($event)"
[loading]="isLoading">
<ng-template #caption>
<div class="toolbar">
<app-multi-select-signals [selectionLimit]="signalsSelectionLimit" (finishedLoadingSignals)="handleSignalsLoaded()"/>
<div class="toolbar-element">
<app-refresh-rate-selector
[isResponseSlowerThanRefresh]="isResponseSlowerThanRefresh"
(selectionChanged)="handleRefreshRateChange($event)">
</app-refresh-rate-selector>
<p-multiselect display="chip" [options]="columns" [(ngModel)]="selectedColumns" optionLabel="label" selectedItemsLabel="{0} columns selected" [style]="{ 'min-width': '200px' }" placeholder="Choose Columns" />
</div>
</div>
</ng-template>
<ng-template #header let-columns>
<tr>
<th>Device</th>
<th>Signal</th>
<th *ngFor="let col of selectedColumns" pReorderableColumn>
{{col.label}}
</th>
<th></th>
</tr>
</ng-template>
<ng-template #body
let-row
let-columns="columns"
let-index="rowIndex">
<tr [pReorderableRow]="index">
<td>
<span class="pi pi-bars" pReorderableRowHandle></span>
{{ signalToDeviceName.get(row.signal) ?? row.signal.signal_id.split('.')[0] }}
</td>
<td>
{{ row.signal.signal_id.split('.')[1] }}
</td>
<td *ngFor="let column of columns" >
<ng-container *ngIf="column.onSample && row.sample !== undefined">
@if (row.sample[column.field] !== null && row.signal.data_type === 'epoch' && (column.field === 'value' || column.field === 'forced_value')) {
{{ row.sample[column.field] * 1000 | date:'yyyy/MM/dd - HH:mm:ss' }}
}
@else {
{{ row.sample[column.field] }}
}
</ng-container>
<ng-container *ngIf="!column.onSample">
<div *ngIf="column.field === 'status'">
<p-badge [value]="row.signal['status'].status" [severity]="row.signal['status'].status === 'up' ? 'success' : 'danger' " />
</div>
<div *ngIf="column.field !== 'status'">
{{row.signal[column.field]}}
</div>
</ng-container>
</td>
<td>
<i class="pi pi-eye open-icon" aria-hidden="true" (click)="showSignal(row.signal)" [id]="row.signal.signal_id"></i>
</td>
</tr>
</ng-template>
</p-table>
<p-dialog class="signal-card-dialog" header="Signal details" [modal]="true" [(visible)]="signalDialogVisible" (onHide)="hideSignal()">
<div class="card-container"><app-signal-card *ngIf="selectedSignal" [signalId]="selectedSignal.signal_id"></app-signal-card></div>
</p-dialog>
|