Skip to content

Commit 0a966fe

Browse files
oleg-odysseuschrisknoll
authored andcommitted
[issue-3019] Added support for multiple types of filtered objects in the setDataLocalStorage operation
1 parent 4c30d91 commit 0a966fe

File tree

1 file changed

+34
-8
lines changed

1 file changed

+34
-8
lines changed

js/components/faceted-datatable.js

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,42 @@ define(['knockout', 'text!./faceted-datatable.html', 'crossfilter', 'utils/Commo
6969
self.outsideFilters = (params.outsideFilters || ko.observable()).extend({notify: 'always'});
7070

7171
self.setDataLocalStorage = (data, nameItem) => {
72-
const filterArrayString = localStorage.getItem(nameItem)
73-
let filterArrayObj = filterArrayString? JSON.parse(filterArrayString): []
72+
const filterString = localStorage.getItem(nameItem);
73+
let filterObj = filterString ? JSON.parse(filterString) : [];
7474

75-
if(!data?.selected()){
76-
filterArrayObj.push({title:data.facet.caption(), value:`${data.key} (${data.value})`,key:data.key})
77-
}else{
78-
filterArrayObj = filterArrayObj.filter((item)=> item.key !== data.key)
75+
if (Array.isArray(filterObj)) {
76+
if (!data?.selected()) {
77+
filterObj.push({
78+
title: data.facet.caption(),
79+
value: `${data.key} (${data.value})`,
80+
key: data.key
81+
});
82+
} else {
83+
filterObj = filterObj.filter((item) => item.key !== data.key);
84+
}
85+
} else if (typeof filterObj === 'object' && filterObj.filterColumns) {
86+
if (!data?.selected()) {
87+
const dataPush = {
88+
title: data.facet.caption(),
89+
value: `${data.key} (${data.value})`,
90+
key: data.key
91+
};
92+
filterObj.filterColumns = [...filterObj.filterColumns, dataPush];
93+
} else {
94+
filterObj.filterColumns = filterObj.filterColumns.filter((item) => item.key !== data.key);
95+
}
96+
} else {
97+
filterObj = [
98+
{
99+
title: data.facet.caption(),
100+
value: `${data.key} (${data.value})`,
101+
key: data.key
102+
}
103+
];
79104
}
80-
localStorage.setItem(nameItem, JSON.stringify(filterArrayObj))
81-
}
105+
106+
localStorage.setItem(nameItem, JSON.stringify(filterObj));
107+
};
82108

83109
self.setDataObjectLocalStorage = (data, nameItem) => {
84110
const filterObjString = localStorage.getItem(nameItem)

0 commit comments

Comments
 (0)