sigfox-device-registration/sigfox-device-registration.component.ts
selector | c8y-sigfox-device-registration |
templateUrl | sigfox-device-registration.component.html |
Properties |
Methods |
constructor(bsModalRef: BsModalRef, sigfoxService: SigfoxProviderService, translateService: TranslateService)
|
||||||||||||
Parameters :
|
Async create | ||||||
create(event: literal type)
|
||||||
Parameters :
Returns :
any
|
getConnections$ |
getConnections$()
|
Returns :
any
|
getContracts$ | ||||
getContracts$(name)
|
||||
Parameters :
Returns :
any
|
getProtocols$ |
getProtocols$()
|
Returns :
any
|
getSigfoxDeviceToSend |
getSigfoxDeviceToSend()
|
Returns :
SigfoxDevice
|
ngOnDestroy |
ngOnDestroy()
|
Returns :
void
|
Public bsModalRef |
Type : BsModalRef
|
connections$ |
Default value : this.getConnections$()
|
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 : {
back: gettext('Close')
}
|
form |
Default value : new FormGroup({})
|
model |
Type : SigfoxDeviceFormly
|
Default value : {} as any
|
Readonly PAGING |
Type : object
|
Default value : {
withTotalPages: true,
pageSize: 10
}
|
protocols$ |
Default value : this.getProtocols$()
|
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>{{ 'Sigfox 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 Sigfox device' | translate }}
</p>
<formly-form
[form]="form"
[fields]="fields"
[model]="model"
class="d-block p-l-24 p-r-24 p-t-16"
></formly-form>
</div>
<c8y-stepper-buttons
[labels]="registrationStepLabels"
(onNext)="create($event)"
(onCancel)="bsModalRef.hide()"
[showButtons]="{ cancel: true, next: true }"
[pending]="state === 'registrationPending'"
[disabled]="!form.valid"
class="modal-footer sticky-bottom 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>