Browse Source

Fix keyFiltersOperation not persisted in dashboard configuration

filters-dialog.component.ts was the bridge between filter-dialog
(which sets keyFiltersOperation on the Filter object) and the
dashboard configuration JSON. It was dropping the field in three
places:
- createFilterFormControl: form group had no keyFiltersOperation field
- edit path: patched filter/editable/keyFilters but not operation
- save(): rebuilt Filter objects without keyFiltersOperation
pull/15394/head
Viacheslav Klimov 6 months ago
parent
commit
47f26f136a
Failed to extract signature
  1. 9
      ui-ngx/src/app/modules/home/components/filter/filters-dialog.component.ts

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

@ -37,7 +37,7 @@ import { TranslateService } from '@ngx-translate/core';
import { ActionNotificationShow } from '@core/notification/notification.actions';
import { DialogService } from '@core/services/dialog.service';
import { deepClone, isUndefined } from '@core/utils';
import { Filter, Filters, KeyFilterInfo } from '@shared/models/query/query.models';
import { ComplexOperation, Filter, Filters, KeyFilterInfo } from '@shared/models/query/query.models';
import { FilterDialogComponent, FilterDialogData } from '@home/components/filter/filter-dialog.component';
import { DashboardUtilsService } from '@core/services/dashboard-utils.service';
@ -132,7 +132,8 @@ export class FiltersDialogComponent extends DialogComponent<FiltersDialogCompone
id: [filterId],
filter: [filter ? filter.filter : null, [Validators.required]],
keyFilters: [filter ? filter.keyFilters : [], [Validators.required]],
editable: [filter ? filter.editable : true]
editable: [filter ? filter.editable : true],
keyFiltersOperation: [filter?.keyFiltersOperation]
});
return filterFormControl;
}
@ -228,6 +229,7 @@ export class FiltersDialogComponent extends DialogComponent<FiltersDialogCompone
filterFormControl.get('filter').patchValue(result.filter);
filterFormControl.get('editable').patchValue(result.editable);
filterFormControl.get('keyFilters').patchValue(result.keyFilters);
filterFormControl.get('keyFiltersOperation').patchValue(result.keyFiltersOperation);
}
this.filterNames.add(result.filter);
this.filtersFormGroup.markAsDirty();
@ -253,6 +255,7 @@ export class FiltersDialogComponent extends DialogComponent<FiltersDialogCompone
const filter: string = filterValue.filter;
const keyFilters: Array<KeyFilterInfo> = filterValue.keyFilters;
const editable: boolean = filterValue.editable;
const keyFiltersOperation: ComplexOperation = filterValue.keyFiltersOperation;
if (uniqueFilterList[filter]) {
valid = false;
message = this.translate.instant('filter.duplicate-filter-error', {filter});
@ -263,7 +266,7 @@ export class FiltersDialogComponent extends DialogComponent<FiltersDialogCompone
break;
} else {
uniqueFilterList[filter] = filter;
filters[filterId] = {id: filterId, filter, keyFilters, editable};
filters[filterId] = {id: filterId, filter, keyFilters, editable, keyFiltersOperation};
}
}
if (valid) {

Loading…
Cancel
Save