File
Implements
Methods
highlightDependingOnExpirationStatus
|
highlightDependingOnExpirationStatus(item: ProvisionedCertificate)
|
Returns : "" | "text-danger" | "text-warning"
|
Async
revokeProvisionedCertificate
|
revokeProvisionedCertificate(provisionedCertificate: ProvisionedCertificate)
|
|
actionControls
|
Type : ActionControl[]
|
Default value : [
{
type: 'REVOKE',
text: gettext('Revoke'),
icon: 'trash',
iconClasses: 'text-danger',
showOnHover: false,
callback: (item: Row & ProvisionedCertificate) => this.revokeProvisionedCertificate(item)
}
]
|
columns
|
Type : Column[]
|
Default value : [
{
name: 'serialNumber',
path: 'serialNumber',
header: gettext('Serial number')
},
{
name: 'validTill',
path: 'validTill',
header: gettext('Expiration date')
}
]
|
displayOptions
|
Type : DisplayOptions
|
Default value : {
filter: false,
striped: true,
hover: true,
bordered: false,
gridHeader: true
}
|
pagination
|
Type : Pagination
|
Default value : {
pageSize: 20,
currentPage: 1
}
|
Protected
Readonly
PX_ACTIONS
|
Default value : PX_ACTIONS
|
reload$
|
Type : BehaviorSubject<void>
|
Default value : new BehaviorSubject(null)
|
reloading
|
Default value : false
|
rows$
|
Type : Observable<Array<>>
|
Default value : this.reload$.pipe(
tap(() => {
this.reloading = true;
}),
map(() => this.route.snapshot.parent.data.contextData as IManagedObject),
switchMap(device => this.deviceSerialsService.getDeviceProvisionedCertificates(device)),
map(provisionedCertificates =>
provisionedCertificates.map(cert => ({
...cert,
id: cert.serialNumber
}))
),
tap(() => {
this.reloading = false;
}),
shareReplay(1),
finalize(() => {
this.reloading = false;
})
)
|
tableTitle
|
Default value : gettext('Provisioned certificates')
|
<c8y-action-bar-item [placement]="'right'">
<button
class="btn btn-link"
title="{{ 'Reload' | translate }}"
type="button"
(click)="reload()"
>
<i
c8yIcon="refresh"
[ngClass]="{ 'icon-spin': reloading }"
></i>
{{ 'Reload' | translate }}
</button>
</c8y-action-bar-item>
<c8y-data-grid
[title]="tableTitle | translate"
[columns]="columns"
[rows]="rows$ | async"
[pagination]="pagination"
[actionControls]="actionControls"
[displayOptions]="displayOptions"
[hideReload]="true"
>
<c8y-ui-empty-state
[icon]="'certificate'"
[title]="'No provisioned certificates to display.' | translate"
*ngIf="(rows$ | async)?.length === 0"
></c8y-ui-empty-state>
<c8y-column name="serialNumber">
<ng-container *c8yCellRendererDef="let context">
<span
class="text-truncate"
title="{{ context.property.header | translate }}: {{ context.value }}"
>
{{ context.value }}
</span>
</ng-container>
</c8y-column>
<c8y-column name="validTill">
<ng-container *c8yCellRendererDef="let context">
<span
class="text-truncate"
title="{{ context.property.header | translate }}: {{ context.value | c8yDate }}"
>
<span
*ngIf="context.value"
[ngClass]="highlightDependingOnExpirationStatus(context.item)"
>
<i
class="m-r-4"
c8yIcon="calendar"
*ngIf="!highlightDependingOnExpirationStatus(context.item)"
></i>
<i
class="m-r-4"
c8yIcon="warning"
*ngIf="highlightDependingOnExpirationStatus(context.item)"
></i>
<span>{{ context.value | c8yDate }}</span>
</span>
</span>
</ng-container>
</c8y-column>
</c8y-data-grid>