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 346x 692x 2x 692x 6x 2x 692x 2x 2x 2x 692x 2082x 6x 2x 2x 2x 202x 4x 4x 408x 4x 4x 408x 4x 404x 1212x 808x 8x 412x 1212x 404x 404x 408x 4x 12x 404x 4x 2x 692x 692x 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>
|