Browse Source

[4143] refactoring

pull/11718/head
mpetrov 2 years ago
parent
commit
75528e98bf
  1. 25
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/rpc-parameters/mqtt-rpc-parameters/mqtt-rpc-parameters.component.ts
  2. 4
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/rpc-parameters/opc-rpc-parameters/opc-rpc-parameters.component.html
  3. 29
      ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/rpc-parameters/opc-rpc-parameters/opc-rpc-parameters.component.ts

25
ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/rpc-parameters/mqtt-rpc-parameters/mqtt-rpc-parameters.component.ts

@ -106,6 +106,7 @@ export class MqttRpcParametersComponent implements ControlValueAccessor, Validat
writeValue(value: RPCTemplateConfigMQTT): void { writeValue(value: RPCTemplateConfigMQTT): void {
this.rpcParametersFormGroup.patchValue(value, {emitEvent: false}); this.rpcParametersFormGroup.patchValue(value, {emitEvent: false});
this.toggleResponseFields(value.withResponse);
} }
private observeValueChanges(): void { private observeValueChanges(): void {
@ -119,18 +120,20 @@ export class MqttRpcParametersComponent implements ControlValueAccessor, Validat
private observeWithResponse(): void { private observeWithResponse(): void {
this.rpcParametersFormGroup.get('withResponse').valueChanges.pipe( this.rpcParametersFormGroup.get('withResponse').valueChanges.pipe(
tap((isActive: boolean) => { tap((isActive: boolean) => this.toggleResponseFields(isActive)),
const responseTopicControl = this.rpcParametersFormGroup.get('responseTopicExpression');
const responseTimeoutControl = this.rpcParametersFormGroup.get('responseTimeout');
if (isActive) {
responseTopicControl.enable();
responseTimeoutControl.enable();
} else {
responseTopicControl.disable();
responseTimeoutControl.disable();
}
}),
takeUntil(this.destroy$), takeUntil(this.destroy$),
).subscribe(); ).subscribe();
} }
private toggleResponseFields(enabled: boolean): void {
const responseTopicControl = this.rpcParametersFormGroup.get('responseTopicExpression');
const responseTimeoutControl = this.rpcParametersFormGroup.get('responseTimeout');
if (enabled) {
responseTopicControl.enable();
responseTimeoutControl.enable();
} else {
responseTopicControl.disable();
responseTimeoutControl.disable();
}
}
} }

4
ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/rpc-parameters/opc-rpc-parameters/opc-rpc-parameters.component.html

@ -73,7 +73,7 @@
</mat-icon> </mat-icon>
</mat-form-field> </mat-form-field>
</div> </div>
<button mat-icon-button (click)="removeOCPUAArguments(i)" <button mat-icon-button (click)="removeArgument(i)"
class="tb-box-button" class="tb-box-button"
matTooltip="{{ 'gateway.rpc.remove' | translate }}" matTooltip="{{ 'gateway.rpc.remove' | translate }}"
matTooltipPosition="above"> matTooltipPosition="above">
@ -82,7 +82,7 @@
</div> </div>
<button mat-raised-button <button mat-raised-button
fxFlexAlign="start" fxFlexAlign="start"
(click)="addOCPUAArguments()"> (click)="addArgument()">
{{ 'gateway.rpc.add-argument' | translate }} {{ 'gateway.rpc.add-argument' | translate }}
</button> </button>
</fieldset> </fieldset>

29
ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/rpc-parameters/opc-rpc-parameters/opc-rpc-parameters.component.ts

@ -44,7 +44,7 @@ import {
OPCTypeValue, OPCTypeValue,
RPCTemplateConfigOPC RPCTemplateConfigOPC
} from '@home/components/widget/lib/gateway/gateway-widget.models'; } from '@home/components/widget/lib/gateway/gateway-widget.models';
import { isEqual } from '@core/utils'; import { isDefinedAndNotNull, isEqual } from '@core/utils';
@Component({ @Component({
selector: 'tb-opc-rpc-parameters', selector: 'tb-opc-rpc-parameters',
@ -77,8 +77,8 @@ export class OpcRpcParametersComponent implements ControlValueAccessor, Validato
readonly MappingValueType = MappingValueType; readonly MappingValueType = MappingValueType;
readonly valueTypes = mappingValueTypesMap; readonly valueTypes = mappingValueTypesMap;
private onChange: (value: RPCTemplateConfigOPC) => void; private onChange: (value: RPCTemplateConfigOPC) => void = (_) => {} ;
private onTouched: () => void; private onTouched: () => void = () => {};
private destroy$ = new Subject<void>(); private destroy$ = new Subject<void>();
@ -111,11 +111,11 @@ export class OpcRpcParametersComponent implements ControlValueAccessor, Validato
} }
writeValue(params: RPCTemplateConfigOPC): void { writeValue(params: RPCTemplateConfigOPC): void {
this.clearFromArrayByName('arguments'); this.clearArguments();
params.arguments?.map(({type, value}) => ({type, [type]: value })) params.arguments?.map(({type, value}) => ({type, [type]: value }))
.forEach(argument => this.addOCPUAArguments(argument as OPCTypeValue)); .forEach(argument => this.addArgument(argument as OPCTypeValue));
this.cdr.markForCheck(); this.cdr.markForCheck();
this.rpcParametersFormGroup.get('method').patchValue(params.method, {emitEvent: false}); this.rpcParametersFormGroup.get('method').patchValue(params.method);
} }
private observeValueChanges(): void { private observeValueChanges(): void {
@ -128,27 +128,30 @@ export class OpcRpcParametersComponent implements ControlValueAccessor, Validato
}); });
} }
removeOCPUAArguments(index: number): void { removeArgument(index: number): void {
(this.rpcParametersFormGroup.get('arguments') as FormArray).removeAt(index); (this.rpcParametersFormGroup.get('arguments') as FormArray).removeAt(index);
} }
addOCPUAArguments(value: OPCTypeValue = {} as OPCTypeValue): void { addArgument(value: OPCTypeValue = {} as OPCTypeValue): void {
const fromGroup = this.fb.group({ const fromGroup = this.fb.group({
type: [value.type ?? MappingValueType.STRING], type: [value.type ?? MappingValueType.STRING],
string: [ string: [
value.string ?? { value: '', disabled: !(isEqual(value, {}) || value.string)}, value.string ?? { value: '', disabled: !(isEqual(value, {}) || value.string)},
[Validators.required, Validators.pattern(noLeadTrailSpacesRegex)] [Validators.required, Validators.pattern(noLeadTrailSpacesRegex)]
], ],
integer: [{value: value.integer ?? 0, disabled: !value.integer}, [Validators.required, Validators.pattern(integerRegex)]], integer: [
double: [{value: value.double ?? 0, disabled: !value.double}, [Validators.required]], {value: value.integer ?? 0, disabled: !isDefinedAndNotNull(value.integer)},
boolean: [{value: value.boolean ?? false, disabled: !value.boolean}, [Validators.required]], [Validators.required, Validators.pattern(integerRegex)]
],
double: [{value: value.double ?? 0, disabled: !isDefinedAndNotNull(value.double)}, [Validators.required]],
boolean: [{value: value.boolean ?? false, disabled: !isDefinedAndNotNull(value.boolean)}, [Validators.required]],
}); });
this.observeTypeChange(fromGroup); this.observeTypeChange(fromGroup);
(this.rpcParametersFormGroup.get('arguments') as FormArray).push(fromGroup, {emitEvent: false}); (this.rpcParametersFormGroup.get('arguments') as FormArray).push(fromGroup, {emitEvent: false});
} }
clearFromArrayByName(name: string): void { clearArguments(): void {
const formArray = this.rpcParametersFormGroup.get(name) as FormArray; const formArray = this.rpcParametersFormGroup.get('arguments') as FormArray;
while (formArray.length !== 0) { while (formArray.length !== 0) {
formArray.removeAt(0); formArray.removeAt(0);
} }

Loading…
Cancel
Save