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 214x 5x 5x 433x 5x 5x 433x 5x 428x 1284x 856x 10x 438x 1284x 428x 428x 433x 5x 15x 428x 5x 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>
|