From d56c33ddb120d180f8ebb5bbfeafa4540c9af81e Mon Sep 17 00:00:00 2001 From: nickAS21 Date: Fri, 29 Jan 2021 12:44:31 +0200 Subject: [PATCH] Lwm2m: front: refactoring --- .../lwm2m-device-config-server.component.ts | 2 +- ...ofile-transport-configuration.component.ts | 14 ++++---- ...m2m-object-add-instances-list.component.ts | 1 - .../lwm2m-object-add-instances.component.ts | 3 +- .../lwm2m/lwm2m-object-list.component.ts | 5 ++- ...serve-attr-telemetry-resource.component.ts | 1 - .../lwm2m-observe-attr-telemetry.component.ts | 33 ++++++++++--------- .../device/lwm2m/profile-config.models.ts | 7 +++- 8 files changed, 33 insertions(+), 33 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts index b61b35296d..adc7fcaa65 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-config-server.component.ts @@ -139,7 +139,7 @@ export class Lwm2mDeviceConfigServerComponent implements ControlValueAccessor { Validators.maxLength(this.lenMaxServerPublicKey)]); } - writeValue(value: any): void { + writeValue(value: ServerSecurityConfig): void { if (value) { this.updateValueFields(value); } diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts index 2aa835d6d7..ab3fa4f7b4 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-device-profile-transport-configuration.component.ts @@ -21,12 +21,11 @@ import { Store } from '@ngrx/store'; import { AppState } from '@app/core/core.state'; import { coerceBooleanProperty } from '@angular/cdk/coercion'; import { - ID, INSTANCES, RESOURCES, OBSERVE_ATTR_TELEMETRY, OBSERVE, ATTRIBUTE, TELEMETRY, KEY_NAME, + INSTANCES, RESOURCES, OBSERVE_ATTR_TELEMETRY, OBSERVE, ATTRIBUTE, TELEMETRY, KEY_NAME, getDefaultProfileConfig, - Instance, ObjectLwM2M, ProfileConfigModels, - ResourceLwM2M + ModelValue } from './profile-config.models'; import { DeviceProfileService } from '@core/http/device-profile.service'; import { deepClone, isDefinedAndNotNull, isUndefined } from '@core/utils'; @@ -113,7 +112,7 @@ export class Lwm2mDeviceProfileTransportConfigurationComponent implements Contro } } - writeValue(value: any | null): void { + writeValue(value: ProfileConfigModels | null): void { this.configurationValue = (Object.keys(value).length === 0) ? getDefaultProfileConfig() : value; this.lwm2mDeviceConfigFormGroup.patchValue({ configurationJson: this.configurationValue @@ -122,7 +121,7 @@ export class Lwm2mDeviceProfileTransportConfigurationComponent implements Contro } private initWriteValue = (): void => { - const modelValue = {objectIds: null, objectsList: []}; + const modelValue = {objectIds: null, objectsList: []} as ModelValue; modelValue.objectIds = this.getObjectsFromJsonAllConfig(); if (modelValue.objectIds !== null) { const sortOrder = { @@ -140,11 +139,10 @@ export class Lwm2mDeviceProfileTransportConfigurationComponent implements Contro } } - private updateWriteValue = (value: any): void => { - const objectsList = value.objectsList; + private updateWriteValue = (value: ModelValue): void => { this.lwm2mDeviceProfileFormGroup.patchValue({ objectIds: value, - observeAttrTelemetry: this.getObserveAttrTelemetryObjects(objectsList), + observeAttrTelemetry: this.getObserveAttrTelemetryObjects(value['objectsList']), shortId: this.configurationValue.bootstrap.servers.shortId, lifetime: this.configurationValue.bootstrap.servers.lifetime, defaultMinPeriod: this.configurationValue.bootstrap.servers.defaultMinPeriod, diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances-list.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances-list.component.ts index c556cef7c8..d1f47d4d03 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances-list.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances-list.component.ts @@ -25,7 +25,6 @@ import { DeviceProfileService } from '@core/http/device-profile.service'; @Component({ selector: 'tb-profile-lwm2m-object-add-instances-list', templateUrl: './lwm2m-object-add-instances-list.component.html', - styleUrls: [], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => Lwm2mObjectAddInstancesListComponent), diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances.component.ts index 91dbc824fc..3e482120d9 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-add-instances.component.ts @@ -30,8 +30,7 @@ export interface Lwm2mObjectAddInstancesData { @Component({ selector: 'tb-lwm2m-object-add-instances', - templateUrl: './lwm2m-object-add-instances.component.html', - styleUrls: [] + templateUrl: './lwm2m-object-add-instances.component.html' }) export class Lwm2mObjectAddInstancesComponent extends DialogComponent implements OnInit { diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-list.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-list.component.ts index 718c9281d7..300f95f83f 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-list.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-object-list.component.ts @@ -21,7 +21,7 @@ import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { Observable } from 'rxjs'; import { filter, map, mergeMap, publishReplay, refCount, tap } from 'rxjs/operators'; -import { ObjectLwM2M } from './profile-config.models'; +import { ModelValue, ObjectLwM2M } from './profile-config.models'; import { TranslateService } from '@ngx-translate/core'; import { DeviceProfileService } from '@core/http/device-profile.service'; import { Direction } from '@shared/models/page/sort-order'; @@ -120,7 +120,7 @@ export class Lwm2mObjectListComponent implements ControlValueAccessor, OnInit, V } } - writeValue(value: any): void { + writeValue(value: ModelValue): void { this.searchText = ''; if (isDefinedAndNotNull(value)) { if (Array.isArray(value.objectIds)) { @@ -193,7 +193,6 @@ export class Lwm2mObjectListComponent implements ControlValueAccessor, OnInit, V return this.lw2mModels; } - onFocus = (): void => { if (!this.dirty) { this.lwm2mListFormGroup.get('objectLwm2m').updateValueAndValidity({onlySelf: true, emitEvent: true}); diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry-resource.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry-resource.component.ts index 4441a285b2..678137140d 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry-resource.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry-resource.component.ts @@ -25,7 +25,6 @@ import { coerceBooleanProperty } from '@angular/cdk/coercion'; @Component({ selector: 'tb-profile-lwm2m-observe-attr-telemetry-resource', templateUrl: './lwm2m-observe-attr-telemetry-resource.component.html', - styleUrls: [], providers: [ { provide: NG_VALUE_ACCESSOR, diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry.component.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry.component.ts index 2419e007c2..d53e8f241b 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry.component.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/lwm2m-observe-attr-telemetry.component.ts @@ -28,7 +28,7 @@ import { import { Store } from '@ngrx/store'; import { AppState } from '@core/core.state'; import { coerceBooleanProperty } from '@angular/cdk/coercion'; -import { Instance, ObjectLwM2M, ResourceLwM2M } from './profile-config.models'; +import { CLIENT_LWM2M, Instance, INSTANCES, ObjectLwM2M, ResourceLwM2M, RESOURCES } from './profile-config.models'; import { deepClone, isDefinedAndNotNull, isEqual, isUndefined } from '@core/utils'; import { MatDialog } from '@angular/material/dialog'; import { TranslateService } from '@ngx-translate/core'; @@ -78,7 +78,7 @@ export class Lwm2mObserveAttrTelemetryComponent implements ControlValueAccessor private dialog: MatDialog, public translate: TranslateService) { this.observeAttrTelemetryFormGroup = this.fb.group({ - clientLwM2M: this.fb.array([]) + [CLIENT_LWM2M]: this.fb.array([]) }); this.observeAttrTelemetryFormGroup.valueChanges.subscribe(value => { if (isUndefined(this.disabled) || !this.disabled) { @@ -87,7 +87,8 @@ export class Lwm2mObserveAttrTelemetryComponent implements ControlValueAccessor }); } - private propagateChange = (v: any) => { }; + private propagateChange = (v: any) => { + }; registerOnChange(fn: any): void { this.propagateChange = fn; @@ -123,14 +124,14 @@ export class Lwm2mObserveAttrTelemetryComponent implements ControlValueAccessor } } - writeValue(value: any): void { + writeValue(value: {}): void { if (isDefinedAndNotNull(value)) { - this.buildClientObjectsLwM2M(value.clientLwM2M); + this.buildClientObjectsLwM2M(value[CLIENT_LWM2M]); } } private buildClientObjectsLwM2M = (objectsLwM2M: ObjectLwM2M []): void => { - this.observeAttrTelemetryFormGroup.setControl('clientLwM2M', + this.observeAttrTelemetryFormGroup.setControl(CLIENT_LWM2M, this.createObjectsLwM2M(objectsLwM2M) ); } @@ -157,23 +158,23 @@ export class Lwm2mObserveAttrTelemetryComponent implements ControlValueAccessor } get clientLwM2MFormArray(): FormArray { - return this.observeAttrTelemetryFormGroup.get('clientLwM2M') as FormArray; + return this.observeAttrTelemetryFormGroup.get(CLIENT_LWM2M) as FormArray; } instancesLwm2mFormArray = (objectLwM2M: AbstractControl): FormArray => { - return objectLwM2M.get('instances') as FormArray; + return objectLwM2M.get(INSTANCES) as FormArray; } changeInstanceResourcesCheckBox = (value: boolean, instance: AbstractControl, type: string): void => { - const resources = deepClone(instance.get('resources').value as ResourceLwM2M[]); + const resources = deepClone(instance.get(RESOURCES).value as ResourceLwM2M[]); resources.forEach(resource => resource[type] = value); - instance.get('resources').patchValue(resources); + instance.get(RESOURCES).patchValue(resources); this.propagateChange(this.observeAttrTelemetryFormGroup.value); } private updateValidators = (): void => { - this.observeAttrTelemetryFormGroup.get('clientLwM2M').setValidators(this.required ? Validators.required : []); - this.observeAttrTelemetryFormGroup.get('clientLwM2M').updateValueAndValidity(); + this.observeAttrTelemetryFormGroup.get(CLIENT_LWM2M).setValidators(this.required ? Validators.required : []); + this.observeAttrTelemetryFormGroup.get(CLIENT_LWM2M).updateValueAndValidity(); } trackByParams = (index: number, element: any): number => { @@ -181,7 +182,7 @@ export class Lwm2mObserveAttrTelemetryComponent implements ControlValueAccessor } getIndeterminate = (instance: AbstractControl, type: string): boolean => { - const resources = instance.get('resources').value as ResourceLwM2M[]; + const resources = instance.get(RESOURCES).value as ResourceLwM2M[]; if (isDefinedAndNotNull(resources)) { const checkedResource = resources.filter(resource => resource[type]); return checkedResource.length !== 0 && checkedResource.length !== resources.length; @@ -190,7 +191,7 @@ export class Lwm2mObserveAttrTelemetryComponent implements ControlValueAccessor } getChecked = (instance: AbstractControl, type: string): boolean => { - const resources = instance.get('resources').value as ResourceLwM2M[]; + const resources = instance.get(RESOURCES).value as ResourceLwM2M[]; return isDefinedAndNotNull(resources) && resources.every(resource => resource[type]); } @@ -239,10 +240,10 @@ export class Lwm2mObserveAttrTelemetryComponent implements ControlValueAccessor } private updateInstancesIds = (data: Lwm2mObjectAddInstancesData): void => { - const objectLwM2MFormGroup = (this.observeAttrTelemetryFormGroup.get('clientLwM2M') as FormArray).controls + const objectLwM2MFormGroup = (this.observeAttrTelemetryFormGroup.get(CLIENT_LWM2M) as FormArray).controls .find(e => e.value.id === data.objectId) as FormGroup; const instancesArray = objectLwM2MFormGroup.value.instances as Instance []; - const instancesFormArray = objectLwM2MFormGroup.get('instances') as FormArray; + const instancesFormArray = objectLwM2MFormGroup.get(INSTANCES) as FormArray; const instance0 = deepClone(instancesFormArray.at(0).value as Instance); instance0.resources.forEach(r => { r.attribute = false; diff --git a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/profile-config.models.ts b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/profile-config.models.ts index 583cc72a44..05a4e42d2f 100644 --- a/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/profile-config.models.ts +++ b/ui-ngx/src/app/modules/home/components/profile/device/lwm2m/profile-config.models.ts @@ -16,7 +16,6 @@ import { JsonObject } from '@angular/compiler-cli/ngcc/src/packages/entry_point'; -export const ID = 'id'; export const INSTANCES = 'instances'; export const RESOURCES = 'resources'; export const OBSERVE_ATTR_TELEMETRY = 'observeAttrTelemetry'; @@ -24,6 +23,7 @@ export const OBSERVE = 'observe'; export const ATTRIBUTE = 'attribute'; export const TELEMETRY = 'telemetry'; export const KEY_NAME = 'keyName'; +export const CLIENT_LWM2M = 'clientLwM2M'; export const DEFAULT_ID_SERVER = 123; export const DEFAULT_ID_BOOTSTRAP = 111; export const DEFAULT_HOST_NAME = 'localhost'; @@ -58,6 +58,11 @@ export const SECURITY_CONFIG_MODE_NAMES = new Map( ] ); +export interface ModelValue { + objectIds: number[] | null, + objectsList: ObjectLwM2M[] +} + export interface BootstrapServersSecurityConfig { shortId: number; lifetime: number;