Browse Source

Fixed alarm rule validity not updating when arguments change (#15820)

* Fixed alarm rule validity not updating when arguments change

* Code formating fix
pull/15851/head
Maksym Tsymbarov 1 month ago
committed by GitHub
parent
commit
8e1d1afd52
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 7
      ui-ngx/src/app/modules/home/components/alarm-rules/cf-alarm-rule-condition.component.ts
  2. 10
      ui-ngx/src/app/modules/home/components/alarm-rules/cf-alarm-rule.component.ts
  3. 8
      ui-ngx/src/app/modules/home/components/alarm-rules/create-cf-alarm-rules.component.ts

7
ui-ngx/src/app/modules/home/components/alarm-rules/cf-alarm-rule-condition.component.ts

@ -142,10 +142,9 @@ export class CfAlarmRuleConditionComponent implements ControlValueAccessor, Vali
} }
ngOnChanges(changes: SimpleChanges) { ngOnChanges(changes: SimpleChanges) {
if (changes.arguments) { if (changes.arguments && !changes.arguments.firstChange) {
if (changes.arguments && !changes.arguments.firstChange) { this.recalculateArgumentValidity();
this.recalculateArgumentValidity(); this.onValidatorChange();
}
} }
} }

10
ui-ngx/src/app/modules/home/components/alarm-rules/cf-alarm-rule.component.ts

@ -84,6 +84,7 @@ export class CfAlarmRuleComponent implements ControlValueAccessor, OnInit, Valid
}); });
private propagateChange = (v: any) => { }; private propagateChange = (v: any) => { };
private onValidatorChange = () => { };
constructor(private dialog: MatDialog, constructor(private dialog: MatDialog,
private fb: FormBuilder, private fb: FormBuilder,
@ -97,12 +98,21 @@ export class CfAlarmRuleComponent implements ControlValueAccessor, OnInit, Valid
registerOnTouched(fn: any): void { registerOnTouched(fn: any): void {
} }
registerOnValidatorChange(fn: () => void): void {
this.onValidatorChange = fn;
}
ngOnInit() { ngOnInit() {
this.alarmRuleFormGroup.valueChanges.pipe( this.alarmRuleFormGroup.valueChanges.pipe(
takeUntilDestroyed(this.destroyRef) takeUntilDestroyed(this.destroyRef)
).subscribe(() => { ).subscribe(() => {
this.updateModel(); this.updateModel();
}); });
this.alarmRuleFormGroup.statusChanges.pipe(
takeUntilDestroyed(this.destroyRef)
).subscribe(() => {
this.onValidatorChange();
});
} }
setDisabledState(isDisabled: boolean): void { setDisabledState(isDisabled: boolean): void {

8
ui-ngx/src/app/modules/home/components/alarm-rules/create-cf-alarm-rules.component.ts

@ -77,12 +77,16 @@ export class CreateCfAlarmRulesComponent implements ControlValueAccessor, Valida
private usedSeverities: AlarmSeverity[] = []; private usedSeverities: AlarmSeverity[] = [];
private propagateChange = (v: any) => { }; private propagateChange = (v: any) => { };
private onValidatorChange = () => { };
constructor(private fb: FormBuilder, constructor(private fb: FormBuilder,
private destroyRef: DestroyRef) { private destroyRef: DestroyRef) {
this.createAlarmRulesFormGroup.valueChanges.pipe( this.createAlarmRulesFormGroup.valueChanges.pipe(
takeUntilDestroyed(this.destroyRef) takeUntilDestroyed(this.destroyRef)
).subscribe(() => this.updateModel()); ).subscribe(() => this.updateModel());
this.createAlarmRulesFormGroup.statusChanges.pipe(
takeUntilDestroyed(this.destroyRef)
).subscribe(() => this.onValidatorChange());
} }
registerOnChange(fn: any): void { registerOnChange(fn: any): void {
@ -92,6 +96,10 @@ export class CreateCfAlarmRulesComponent implements ControlValueAccessor, Valida
registerOnTouched(fn: any): void { registerOnTouched(fn: any): void {
} }
registerOnValidatorChange(fn: () => void): void {
this.onValidatorChange = fn;
}
createAlarmRulesFormArray(): UntypedFormArray { createAlarmRulesFormArray(): UntypedFormArray {
return this.createAlarmRulesFormGroup.get('createAlarmRules') as UntypedFormArray; return this.createAlarmRulesFormGroup.get('createAlarmRules') as UntypedFormArray;
} }

Loading…
Cancel
Save