Browse Source

UI: Refactoring device profile

pull/3567/head
Vladyslav_Prykhodko 6 years ago
parent
commit
06c3fb8eab
  1. 16
      ui-ngx/src/app/core/utils.ts
  2. 17
      ui-ngx/src/app/modules/home/components/entity/entity.component.ts
  3. 3
      ui-ngx/src/app/modules/home/components/profile/add-device-profile-dialog.component.ts
  4. 0
      ui-ngx/src/app/modules/home/components/profile/device-profile-data.component.html
  5. 2
      ui-ngx/src/app/modules/home/components/profile/device-profile.component.ts
  6. 2
      ui-ngx/src/app/shared/models/device.models.ts

16
ui-ngx/src/app/core/utils.ts

@ -387,3 +387,19 @@ export function sortObjectKeys<T>(obj: T): T {
return acc; return acc;
}, {} as T); }, {} as T);
} }
export function deepTrim<T>(obj: T): T {
if (isNumber(obj) || isUndefined(obj) || isString(obj) || obj === null) {
return obj;
}
return Object.keys(obj).reduce((acc, curr) => {
if (isString(obj[curr])) {
acc[curr] = obj[curr].trim();
} else if (isObject(obj[curr])) {
acc[curr] = deepTrim(obj[curr]);
} else {
acc[curr] = obj[curr];
}
return acc;
}, (Array.isArray(obj) ? [] : {}) as T);
}

17
ui-ngx/src/app/modules/home/components/entity/entity.component.ts

@ -23,7 +23,7 @@ import { AppState } from '@core/core.state';
import { EntityAction } from '@home/models/entity/entity-component.models'; import { EntityAction } from '@home/models/entity/entity-component.models';
import { EntityTableConfig } from '@home/models/entity/entities-table-config.models'; import { EntityTableConfig } from '@home/models/entity/entities-table-config.models';
import { PageLink } from '@shared/models/page/page-link'; import { PageLink } from '@shared/models/page/page-link';
import { isObject, isString } from '@core/utils'; import { deepTrim } from '@core/utils';
// @dynamic // @dynamic
@Directive() @Directive()
@ -115,20 +115,7 @@ export abstract class EntityComponent<T extends BaseData<HasId>,
} }
prepareFormValue(formValue: any): any { prepareFormValue(formValue: any): any {
return this.deepTrim(formValue); return deepTrim(formValue);
}
private deepTrim(obj: object): object {
return Object.keys(obj).reduce((acc, curr) => {
if (isString(obj[curr])) {
acc[curr] = obj[curr].trim();
} else if (isObject(obj[curr])) {
acc[curr] = this.deepTrim(obj[curr]);
} else {
acc[curr] = obj[curr];
}
return acc;
}, Array.isArray(obj) ? [] : {});
} }
protected setEntitiesTableConfig(entitiesTableConfig: C) { protected setEntitiesTableConfig(entitiesTableConfig: C) {

3
ui-ngx/src/app/modules/home/components/profile/add-device-profile-dialog.component.ts

@ -44,6 +44,7 @@ import { EntityType } from '@shared/models/entity-type.models';
import { MatHorizontalStepper } from '@angular/material/stepper'; import { MatHorizontalStepper } from '@angular/material/stepper';
import { RuleChainId } from '@shared/models/id/rule-chain-id'; import { RuleChainId } from '@shared/models/id/rule-chain-id';
import { StepperSelectionEvent } from '@angular/cdk/stepper'; import { StepperSelectionEvent } from '@angular/cdk/stepper';
import { deepTrim } from '@core/utils';
export interface AddDeviceProfileDialogData { export interface AddDeviceProfileDialogData {
deviceProfileName: string; deviceProfileName: string;
@ -171,7 +172,7 @@ export class AddDeviceProfileDialogComponent extends
if (this.deviceProfileDetailsFormGroup.get('defaultRuleChainId').value) { if (this.deviceProfileDetailsFormGroup.get('defaultRuleChainId').value) {
deviceProfile.defaultRuleChainId = new RuleChainId(this.deviceProfileDetailsFormGroup.get('defaultRuleChainId').value); deviceProfile.defaultRuleChainId = new RuleChainId(this.deviceProfileDetailsFormGroup.get('defaultRuleChainId').value);
} }
this.deviceProfileService.saveDeviceProfile(deviceProfile).subscribe( this.deviceProfileService.saveDeviceProfile(deepTrim(deviceProfile)).subscribe(
(savedDeviceProfile) => { (savedDeviceProfile) => {
this.dialogRef.close(savedDeviceProfile); this.dialogRef.close(savedDeviceProfile);
} }

0
ui-ngx/src/app/modules/home/components/profile/device-profile-data.component.html

2
ui-ngx/src/app/modules/home/components/profile/device-profile.component.ts

@ -142,7 +142,7 @@ export class DeviceProfileComponent extends EntityComponent<DeviceProfile> {
if (formValue.defaultRuleChainId) { if (formValue.defaultRuleChainId) {
formValue.defaultRuleChainId = new RuleChainId(formValue.defaultRuleChainId); formValue.defaultRuleChainId = new RuleChainId(formValue.defaultRuleChainId);
} }
return formValue; return super.prepareFormValue(formValue);
} }
onDeviceProfileIdCopied(event) { onDeviceProfileIdCopied(event) {

2
ui-ngx/src/app/shared/models/device.models.ts

@ -76,7 +76,7 @@ export const deviceTransportTypeHintMap = new Map<DeviceTransportType, string>(
[ [
[DeviceTransportType.DEFAULT, 'device-profile.transport-type-default-hint'], [DeviceTransportType.DEFAULT, 'device-profile.transport-type-default-hint'],
[DeviceTransportType.MQTT, 'device-profile.transport-type-mqtt-hint'], [DeviceTransportType.MQTT, 'device-profile.transport-type-mqtt-hint'],
[DeviceTransportType.LWM2M, 'device-profile.transport-type-lwm2m-hint'] // [DeviceTransportType.LWM2M, 'device-profile.transport-type-lwm2m-hint']
] ]
); );

Loading…
Cancel
Save