From df5ff6c0bbd1ae16bf68e8badab57d1c404cb56d Mon Sep 17 00:00:00 2001 From: Vladyslav_Prykhodko Date: Fri, 11 Apr 2025 17:22:07 +0300 Subject: [PATCH] UI: Fixed check relation rule node validation when change enity type --- .../filter/check-relation-config.component.ts | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/ui-ngx/src/app/modules/home/components/rule-node/filter/check-relation-config.component.ts b/ui-ngx/src/app/modules/home/components/rule-node/filter/check-relation-config.component.ts index 95ba48e79a..fdc9d99107 100644 --- a/ui-ngx/src/app/modules/home/components/rule-node/filter/check-relation-config.component.ts +++ b/ui-ngx/src/app/modules/home/components/rule-node/filter/check-relation-config.component.ts @@ -54,24 +54,29 @@ export class CheckRelationConfigComponent extends RuleNodeConfigurationComponent this.checkRelationConfigForm = this.fb.group({ checkForSingleEntity: [configuration.checkForSingleEntity, []], direction: [configuration.direction, []], - entityType: [configuration.entityType, - configuration && configuration.checkForSingleEntity ? [Validators.required] : []], - entityId: [configuration.entityId, - configuration && configuration.checkForSingleEntity ? [Validators.required] : []], + entityType: [configuration.entityType, [Validators.required]], + entityId: [configuration.entityId, [Validators.required]], relationType: [configuration.relationType, [Validators.required]] }); } protected validatorTriggers(): string[] { - return ['checkForSingleEntity']; + return ['checkForSingleEntity', 'entityType']; } - protected updateValidators(emitEvent: boolean) { - const checkForSingleEntity: boolean = this.checkRelationConfigForm.get('checkForSingleEntity').value; - this.checkRelationConfigForm.get('entityType').setValidators(checkForSingleEntity ? [Validators.required] : []); - this.checkRelationConfigForm.get('entityType').updateValueAndValidity({emitEvent}); - this.checkRelationConfigForm.get('entityId').setValidators(checkForSingleEntity ? [Validators.required] : []); - this.checkRelationConfigForm.get('entityId').updateValueAndValidity({emitEvent}); + protected updateValidators(_emitEvent: boolean, trigger: string) { + if (trigger === 'entityType') { + this.checkRelationConfigForm.get('entityId').reset(null); + } else { + const checkForSingleEntity: boolean = this.checkRelationConfigForm.get('checkForSingleEntity').value; + if (checkForSingleEntity) { + this.checkRelationConfigForm.get('entityType').enable({emitEvent: false}); + this.checkRelationConfigForm.get('entityId').enable({emitEvent: false}); + } else { + this.checkRelationConfigForm.get('entityType').disable({emitEvent: false}); + this.checkRelationConfigForm.get('entityId').disable({emitEvent: false}); + } + } } }