File

device-provisioned-certificates/device-tab-provisioned-certificates.component.ts

Implements

OnInit

Metadata

Index

Properties
Methods

Constructor

constructor(alertService: AlertService, modalService: ModalService, deviceSerialsService: DeviceProvisionedCertificatesService, crlService: CrlService, route: ActivatedRoute, translateService: TranslateService)
Parameters :
Name Type Optional
alertService AlertService No
modalService ModalService No
deviceSerialsService DeviceProvisionedCertificatesService No
crlService CrlService No
route ActivatedRoute No
translateService TranslateService No

Methods

highlightDependingOnExpirationStatus
highlightDependingOnExpirationStatus(item: ProvisionedCertificate)
Parameters :
Name Type Optional
item ProvisionedCertificate No
Returns : "" | "text-danger" | "text-warning"
ngOnInit
ngOnInit()
Returns : void
reload
reload()
Returns : void
Async revokeProvisionedCertificate
revokeProvisionedCertificate(provisionedCertificate: ProvisionedCertificate)
Parameters :
Name Type Optional
provisionedCertificate ProvisionedCertificate No
Returns : any

Properties

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>

results matching ""

    No results matching ""