Browse Source

Fix toggle disabled behavior via form control API

Disable the keyFiltersOperation form control when OR is not allowed.
This uses Angular's reactive form disabled state which properly
propagates through setDisabledState to tb-toggle-select, greying out
the entire toggle. If the filter had OR saved, it resets to AND and
marks the form dirty so Update is enabled. The tooltip on hover
explains why the toggle is disabled.
pull/15394/head
Viacheslav Klimov 6 months ago
parent
commit
2c639d534b
Failed to extract signature
  1. 14
      ui-ngx/src/app/modules/home/components/filter/filter-dialog.component.ts

14
ui-ngx/src/app/modules/home/components/filter/filter-dialog.component.ts

@ -100,16 +100,12 @@ export class FilterDialogComponent extends DialogComponent<FilterDialogComponent
keyFilters: [this.filter.keyFilters, Validators.required], keyFilters: [this.filter.keyFilters, Validators.required],
keyFiltersOperation: [this.filter.keyFiltersOperation ?? ComplexOperation.AND] keyFiltersOperation: [this.filter.keyFiltersOperation ?? ComplexOperation.AND]
}); });
if (!this.allowKeyFiltersOrConditions && this.filter.keyFiltersOperation === ComplexOperation.OR) {
this.filterFormGroup.get('keyFiltersOperation').setValue(ComplexOperation.AND);
this.filterFormGroup.markAsDirty();
}
if (!this.allowKeyFiltersOrConditions) { if (!this.allowKeyFiltersOrConditions) {
this.filterFormGroup.get('keyFiltersOperation').valueChanges.subscribe(value => { if (this.filter.keyFiltersOperation === ComplexOperation.OR) {
if (value === ComplexOperation.OR) { this.filterFormGroup.get('keyFiltersOperation').setValue(ComplexOperation.AND);
this.filterFormGroup.get('keyFiltersOperation').setValue(ComplexOperation.AND); this.filterFormGroup.markAsDirty();
} }
}); this.filterFormGroup.get('keyFiltersOperation').disable();
} }
} }

Loading…
Cancel
Save