diff --git a/src/js/account/result-filters.js b/src/js/account/result-filters.js index 9c9f45907..b85a32bd5 100644 --- a/src/js/account/result-filters.js +++ b/src/js/account/result-filters.js @@ -74,6 +74,7 @@ Promise.all([Misc.getLanguageList(), Misc.getFunboxList()]).then((values) => { defaultResultFilters.funbox[funbox.name] = true; }); // filters = defaultResultFilters; + load(); }); export function getFilters() { @@ -110,7 +111,12 @@ export function load() { // let newTags = $.cookie("activeTags"); try { let newResultFilters = window.localStorage.getItem("resultFilters"); - if (newResultFilters != undefined && newResultFilters !== "") { + if ( + newResultFilters != undefined && + newResultFilters !== "" && + Misc.countAllKeys(newResultFilters) >= + Misc.countAllKeys(defaultResultFilters) + ) { filters = JSON.parse(newResultFilters); save(); } else { @@ -129,8 +135,6 @@ export function reset() { save(); } -load(); - export function updateActive() { let aboveChartDisplay = {}; Object.keys(getFilters()).forEach((group) => { diff --git a/src/js/misc.js b/src/js/misc.js index a8e7190c8..02dfbee12 100644 --- a/src/js/misc.js +++ b/src/js/misc.js @@ -726,3 +726,14 @@ export function setCharAt(str, index, chr) { if (index > str.length - 1) return str; return str.substring(0, index) + chr + str.substring(index + 1); } + +//https://www.reddit.com/r/learnjavascript/comments/8ohug3/how_to_recursively_count_keys_in_an_object/e03fytn/ +function countAllKeys(obj) { + if (typeof obj !== "object" || obj === null) { + return 0; + } + const keys = Object.keys(obj); + let sum = keys.length; + keys.forEach((key) => (sum += countAllKeys(obj[key]))); + return sum; +}