RED-9390 - Workload filter does not remember previous ALL or NONE selection

This commit is contained in:
Valentin Mihai 2024-06-27 13:23:35 +03:00
parent f872158c5f
commit ca0db25484
3 changed files with 15 additions and 11 deletions

View File

@ -62,7 +62,7 @@
></div>
}
<div
(click)="deactivateFilters()"
(click)="deactivatePrimaryFilters()"
class="all-caps-label primary pointer"
iqserStopPropagation
translate="actions.none"

View File

@ -95,16 +95,18 @@ export class FilterCardComponent implements OnInit {
filterGroup,
parent,
primaryFiltersSlug: this.primaryFiltersSlug,
fileId: this.fileId,
});
this.filterService.updateFiltersInLocalStorage(this.fileId);
}
deactivateFilters() {
deactivatePrimaryFilters() {
this.filterService.deactivateFilters({ primaryFiltersSlug: this.primaryFiltersSlug });
this.filterService.updateFiltersInLocalStorage(this.fileId);
}
activatePrimaryFilters(): void {
this.filterService.setFilters(this.primaryFiltersSlug, true);
this.filterService.updateFiltersInLocalStorage(this.fileId);
}
toggleFilterExpanded(nestedFilter: INestedFilter): void {

View File

@ -14,7 +14,6 @@ export interface CheckboxClickedParams {
nestedFilter: INestedFilter;
filterGroup: IFilterGroup;
parent?: INestedFilter;
fileId?: string;
primaryFiltersSlug: string;
}
@ -24,6 +23,10 @@ export interface DeactivateFiltersParams {
exceptedFilterId?: string;
}
const PRIMARY_FILTERS = 'primaryFilters';
const SECONDARY_FILTERS = 'secondaryFilters';
const WORKLOAD_FILTERS_KEY = 'workload-filters';
@Injectable()
export class FilterService {
readonly #singleFilters = new Map<string, BehaviorSubject<IFilter | undefined>>();
@ -241,7 +244,7 @@ export class FilterService {
}
filterCheckboxClicked(params: CheckboxClickedParams) {
const { filterGroup, nestedFilter, parent, fileId, primaryFiltersSlug } = params;
const { filterGroup, nestedFilter, parent, primaryFiltersSlug } = params;
if (filterGroup.singleSelect) {
this.deactivateFilters({ primaryFiltersSlug, exceptedFilterId: nestedFilter.id });
@ -264,23 +267,22 @@ export class FilterService {
}
this.refresh();
this.#updateFiltersInLocalStorage(fileId);
}
#updateFiltersInLocalStorage(fileId?: string) {
updateFiltersInLocalStorage(fileId?: string) {
if (fileId) {
const primaryFilters = this.getGroup('primaryFilters');
const secondaryFilters = this.getGroup('secondaryFilters');
const primaryFilters = this.getGroup(PRIMARY_FILTERS);
const secondaryFilters = this.getGroup(SECONDARY_FILTERS);
const filters: LocalStorageFilters = {
primaryFilters: extractFilterValues(primaryFilters?.filters),
secondaryFilters: extractFilterValues(secondaryFilters?.filters),
};
const workloadFiltersString = localStorage.getItem('workload-filters') ?? '{}';
const workloadFiltersString = localStorage.getItem(WORKLOAD_FILTERS_KEY) ?? '{}';
const workloadFilters = JSON.parse(workloadFiltersString);
workloadFilters[fileId] = filters;
localStorage.setItem('workload-filters', JSON.stringify(workloadFilters));
localStorage.setItem(WORKLOAD_FILTERS_KEY, JSON.stringify(workloadFilters));
}
}
}