Browse Source

Mark form dirty when OR is force-reset to AND

When OR is disabled but a filter had OR saved, the reset to AND now
marks the form dirty so the Update button is enabled and the user
can save the corrected value.
pull/15394/head
Viacheslav Klimov 6 months ago
parent
commit
2a54290db1
Failed to extract signature
  1. 10
      ui-ngx/src/app/modules/home/components/filter/filter-dialog.component.ts

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

@ -94,18 +94,20 @@ export class FilterDialogComponent extends DialogComponent<FilterDialogComponent
} }
this.allowKeyFiltersOrConditions = getCurrentAuthState(this.store).allowKeyFiltersOrConditions !== false; this.allowKeyFiltersOrConditions = getCurrentAuthState(this.store).allowKeyFiltersOrConditions !== false;
const initialOperation = !this.allowKeyFiltersOrConditions ? ComplexOperation.AND
: (this.filter.keyFiltersOperation ?? ComplexOperation.AND);
this.filterFormGroup = this.fb.group({ this.filterFormGroup = this.fb.group({
filter: [this.filter.filter, [this.validateDuplicateFilterName(), Validators.required]], filter: [this.filter.filter, [this.validateDuplicateFilterName(), Validators.required]],
editable: [this.filter.editable], editable: [this.filter.editable],
keyFilters: [this.filter.keyFilters, Validators.required], keyFilters: [this.filter.keyFilters, Validators.required],
keyFiltersOperation: [initialOperation] 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 => { this.filterFormGroup.get('keyFiltersOperation').valueChanges.subscribe(value => {
if (value === ComplexOperation.OR) { if (value === ComplexOperation.OR) {
this.filterFormGroup.get('keyFiltersOperation').setValue(ComplexOperation.AND, {emitEvent: false}); this.filterFormGroup.get('keyFiltersOperation').setValue(ComplexOperation.AND);
} }
}); });
} }

Loading…
Cancel
Save