actility-device-registration/actility-device-registration.component.ts
selector | c8y-actility-registration |
templateUrl | actility-device-registration.component.html |
Properties |
Methods |
constructor(bsModalRef: BsModalRef, registrationService: ActilityDeviceRegistrationService)
|
|||||||||
Parameters :
|
getActilityDeviceToSend |
getActilityDeviceToSend()
|
Returns :
ActilityDeviceRegistration
|
getConnections$ |
getConnections$()
|
Returns :
any
|
getConnectivityPlans$ | ||||
getConnectivityPlans$(name)
|
||||
Parameters :
Returns :
any
|
getDeviceProfiles$ | ||||
getDeviceProfiles$(name)
|
||||
Parameters :
Returns :
any
|
getDeviceProtocols$ |
getDeviceProtocols$()
|
Returns :
any
|
ngOnDestroy |
ngOnDestroy()
|
Returns :
void
|
Async register | ||||||
register(event: literal type)
|
||||||
Parameters :
Returns :
any
|
Public bsModalRef |
Type : BsModalRef
|
connections$ |
Default value : this.getConnections$()
|
deviceProtocols$ |
Default value : this.getDeviceProtocols$()
|
errorMessages$ |
Default value : this.errors$.pipe(
map(errors => errors.map(error => error.message)),
map(messages => uniq(messages))
)
|
errors$ |
Default value : new BehaviorSubject<Error[]>([])
|
finalStepLabels |
Type : object
|
Default value : {
custom: gettext('Close')
}
|
form |
Default value : new FormGroup({})
|
model |
Default value : {} as ActilityDeviceRegistration
|
registrationStepLabels |
Type : object
|
Default value : {
next: gettext('Register')
}
|
state |
Type : State
|
Default value : 'loadPending'
|
stepper |
Type : C8yStepper
|
unsubscribe$ |
Type : Subject<void>
|
Default value : new Subject()
|
<c8y-modal [headerClasses]="'dialog-header'" [customFooter]="true">
<ng-container c8y-modal-title>
<span [c8yIcon]="'c8y-device-connect'"></span>
<h4>{{ 'Actility LoRa registration' | translate }}</h4>
</ng-container>
<ng-container *ngIf="state === 'loadPending'; else registrationForm">
<div class="p-16 text-center">
<c8y-loading></c8y-loading>
</div>
</ng-container>
<!--Formly schema is rendered-->
<ng-template #registrationForm>
<c8y-stepper
[hideStepProgress]="true"
linear
*ngIf="(errorMessages$ | async).length === 0; else errorMessagesPresent"
>
<cdk-step [stepControl]="form">
<div class="p-b-16">
<p
class="
p-l-24 p-r-24 p-t-16 p-b-16
m-b-0
sticky-top
separator-bottom
lead
text-center
bg-component
"
>
{{ 'Register a single Actility device' | translate }}
</p>
<formly-form
[form]="form"
[fields]="fields"
[model]="model"
class="formly-group-array-cols d-block p-l-24 p-r-24"
></formly-form>
</div>
<c8y-stepper-buttons
[labels]="registrationStepLabels"
(onNext)="register($event)"
(onCancel)="bsModalRef.hide()"
[showButtons]="{ cancel: true, next: true }"
[pending]="state === 'registrationPending'"
[disabled]="!form?.valid"
class="sticky-bottom d-block p-t-16 p-b-16 separator-top bg-white"
></c8y-stepper-buttons>
</cdk-step>
<cdk-step state="final">
<!--success scenario-->
<div class="p-16 text-center" *ngIf="state === 'registrationPending'">
<c8y-loading></c8y-loading>
</div>
<div class="m-24">
<c8y-operation-result
*ngIf="state === 'registrationSuccess'"
text="{{ 'Device registered' | translate }}"
[size]="84"
[vertical]="true"
type="success"
class="lead m-b-0"
></c8y-operation-result>
</div>
<c8y-stepper-buttons
class="sticky-bottom d-block p-t-16 p-b-16 separator-top bg-white"
(onCustom)="bsModalRef.hide()"
[showButtons]="{ custom: true }"
[labels]="finalStepLabels"
></c8y-stepper-buttons>
</cdk-step>
</c8y-stepper>
</ng-template>
<!--Failure scenario-->
<ng-template #errorMessagesPresent>
<div class="m-24">
<c8y-operation-result
*ngIf="state === 'registrationError'"
text="{{ 'Failed to register' | translate }}"
[size]="84"
[vertical]="true"
type="error"
class="lead"
></c8y-operation-result>
<div
*ngFor="let msg of errorMessages$ | async"
class="m-b-8"
[ngClass]="{
'text-center': state === 'registrationError',
'alert alert-danger': state === 'loadError'
}"
>
<span [innerHTML]="msg | translate"></span>
</div>
</div>
<div class="modal-footer">
<button
title="{{ 'Close' | translate }}"
(click)="bsModalRef.hide()"
type="button"
class="btn btn-default"
translate
>
Close
</button>
</div>
</ng-template>
</c8y-modal>