From 635f48d3434f93acdb523025dd2ac92dffb41e3e Mon Sep 17 00:00:00 2001 From: mpetrov Date: Tue, 30 Jul 2024 12:10:27 +0300 Subject: [PATCH] Reworked validation of Mosbus tabs --- .../modbus-basic-config.component.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/modbus/modbus-basic-config/modbus-basic-config.component.ts b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/modbus/modbus-basic-config/modbus-basic-config.component.ts index 1fca768980..bfd085a4c4 100644 --- a/ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/modbus/modbus-basic-config/modbus-basic-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/widget/lib/gateway/connectors-configuration/modbus/modbus-basic-config/modbus-basic-config.component.ts @@ -24,7 +24,7 @@ import { ValidationErrors, Validator, } from '@angular/forms'; -import { ConnectorType, ModbusBasicConfig } from '@home/components/widget/lib/gateway/gateway-widget.models'; +import { ModbusBasicConfig } from '@home/components/widget/lib/gateway/gateway-widget.models'; import { SharedModule } from '@shared/shared.module'; import { CommonModule } from '@angular/common'; import { takeUntil } from 'rxjs/operators'; @@ -109,8 +109,14 @@ export class ModbusBasicConfigComponent implements ControlValueAccessor, Validat } validate(): ValidationErrors | null { - return this.basicFormGroup.valid ? null : { - basicFormGroup: {valid: false} - }; + const masterHasSlaves = !!this.basicFormGroup.get('master').value.slaves?.length; + const slaveEnabled = this.basicFormGroup.get('slave').value.sendDataToThingsBoard; + const slaveIsValid = this.basicFormGroup.get('slave').valid; + + if ((slaveEnabled && slaveIsValid) || (masterHasSlaves && !slaveEnabled)) { + return null; + } + + return { basicFormGroup: { valid: false } }; } }