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 348x 696x 2x 696x 6x 2x 696x 2x 2x 2x 696x 2094x 6x 2x 2x 2x 212x 5x 5x 429x 5x 5x 429x 5x 424x 1272x 848x 10x 434x 1272x 424x 424x 429x 5x 15x 424x 5x 2x 696x 696x 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>
|