RED-9390 - Workload filter does not remember previous ALL or NONE selection
This commit is contained in:
parent
f872158c5f
commit
ca0db25484
@ -62,7 +62,7 @@
|
|||||||
></div>
|
></div>
|
||||||
}
|
}
|
||||||
<div
|
<div
|
||||||
(click)="deactivateFilters()"
|
(click)="deactivatePrimaryFilters()"
|
||||||
class="all-caps-label primary pointer"
|
class="all-caps-label primary pointer"
|
||||||
iqserStopPropagation
|
iqserStopPropagation
|
||||||
translate="actions.none"
|
translate="actions.none"
|
||||||
|
|||||||
@ -95,16 +95,18 @@ export class FilterCardComponent implements OnInit {
|
|||||||
filterGroup,
|
filterGroup,
|
||||||
parent,
|
parent,
|
||||||
primaryFiltersSlug: this.primaryFiltersSlug,
|
primaryFiltersSlug: this.primaryFiltersSlug,
|
||||||
fileId: this.fileId,
|
|
||||||
});
|
});
|
||||||
|
this.filterService.updateFiltersInLocalStorage(this.fileId);
|
||||||
}
|
}
|
||||||
|
|
||||||
deactivateFilters() {
|
deactivatePrimaryFilters() {
|
||||||
this.filterService.deactivateFilters({ primaryFiltersSlug: this.primaryFiltersSlug });
|
this.filterService.deactivateFilters({ primaryFiltersSlug: this.primaryFiltersSlug });
|
||||||
|
this.filterService.updateFiltersInLocalStorage(this.fileId);
|
||||||
}
|
}
|
||||||
|
|
||||||
activatePrimaryFilters(): void {
|
activatePrimaryFilters(): void {
|
||||||
this.filterService.setFilters(this.primaryFiltersSlug, true);
|
this.filterService.setFilters(this.primaryFiltersSlug, true);
|
||||||
|
this.filterService.updateFiltersInLocalStorage(this.fileId);
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleFilterExpanded(nestedFilter: INestedFilter): void {
|
toggleFilterExpanded(nestedFilter: INestedFilter): void {
|
||||||
|
|||||||
@ -14,7 +14,6 @@ export interface CheckboxClickedParams {
|
|||||||
nestedFilter: INestedFilter;
|
nestedFilter: INestedFilter;
|
||||||
filterGroup: IFilterGroup;
|
filterGroup: IFilterGroup;
|
||||||
parent?: INestedFilter;
|
parent?: INestedFilter;
|
||||||
fileId?: string;
|
|
||||||
primaryFiltersSlug: string;
|
primaryFiltersSlug: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,6 +23,10 @@ export interface DeactivateFiltersParams {
|
|||||||
exceptedFilterId?: string;
|
exceptedFilterId?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const PRIMARY_FILTERS = 'primaryFilters';
|
||||||
|
const SECONDARY_FILTERS = 'secondaryFilters';
|
||||||
|
const WORKLOAD_FILTERS_KEY = 'workload-filters';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class FilterService {
|
export class FilterService {
|
||||||
readonly #singleFilters = new Map<string, BehaviorSubject<IFilter | undefined>>();
|
readonly #singleFilters = new Map<string, BehaviorSubject<IFilter | undefined>>();
|
||||||
@ -241,7 +244,7 @@ export class FilterService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
filterCheckboxClicked(params: CheckboxClickedParams) {
|
filterCheckboxClicked(params: CheckboxClickedParams) {
|
||||||
const { filterGroup, nestedFilter, parent, fileId, primaryFiltersSlug } = params;
|
const { filterGroup, nestedFilter, parent, primaryFiltersSlug } = params;
|
||||||
|
|
||||||
if (filterGroup.singleSelect) {
|
if (filterGroup.singleSelect) {
|
||||||
this.deactivateFilters({ primaryFiltersSlug, exceptedFilterId: nestedFilter.id });
|
this.deactivateFilters({ primaryFiltersSlug, exceptedFilterId: nestedFilter.id });
|
||||||
@ -264,23 +267,22 @@ export class FilterService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.refresh();
|
this.refresh();
|
||||||
this.#updateFiltersInLocalStorage(fileId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#updateFiltersInLocalStorage(fileId?: string) {
|
updateFiltersInLocalStorage(fileId?: string) {
|
||||||
if (fileId) {
|
if (fileId) {
|
||||||
const primaryFilters = this.getGroup('primaryFilters');
|
const primaryFilters = this.getGroup(PRIMARY_FILTERS);
|
||||||
const secondaryFilters = this.getGroup('secondaryFilters');
|
const secondaryFilters = this.getGroup(SECONDARY_FILTERS);
|
||||||
|
|
||||||
const filters: LocalStorageFilters = {
|
const filters: LocalStorageFilters = {
|
||||||
primaryFilters: extractFilterValues(primaryFilters?.filters),
|
primaryFilters: extractFilterValues(primaryFilters?.filters),
|
||||||
secondaryFilters: extractFilterValues(secondaryFilters?.filters),
|
secondaryFilters: extractFilterValues(secondaryFilters?.filters),
|
||||||
};
|
};
|
||||||
|
|
||||||
const workloadFiltersString = localStorage.getItem('workload-filters') ?? '{}';
|
const workloadFiltersString = localStorage.getItem(WORKLOAD_FILTERS_KEY) ?? '{}';
|
||||||
const workloadFilters = JSON.parse(workloadFiltersString);
|
const workloadFilters = JSON.parse(workloadFiltersString);
|
||||||
workloadFilters[fileId] = filters;
|
workloadFilters[fileId] = filters;
|
||||||
localStorage.setItem('workload-filters', JSON.stringify(workloadFilters));
|
localStorage.setItem(WORKLOAD_FILTERS_KEY, JSON.stringify(workloadFilters));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user