Remove open bogus folder tags that don't have any entities assigned (#5225) Fixes #5222
Signed| @@ -2286,6 +2286,9 @@ function printViewTagList(tagContainer, empty = true) { | ||
| 2286 | 2286 | |
| 2287 | 2287 | function removeMissingTagFilters() { |
| 2288 | 2288 | const tagIds = new Set(tags.map(tag => tag.id)); |
| 2289 | + const assignedTagIds = new Set(Object.values(tag_map).flat()); | |
| 2290 | + const openBogusFolderIds = new Set(getOpenBogusFolders().map(tag => tag.id)); | |
| 2291 | + const isEmptyOpenBogusFolder = (tagId) => openBogusFolderIds.has(tagId) && !assignedTagIds.has(tagId); | |
| 2289 | 2292 | |
| 2290 | 2293 | for (const helper of [groupCandidatesFilter, groupMembersFilter, entitiesFilter]) { |
| 2291 | 2294 | const { selected, excluded } = helper.getFilterData(FILTER_TYPES.TAG); |
| @@ -2293,7 +2296,7 @@ function removeMissingTagFilters() { | ||
| 2293 | 2296 | |
| 2294 | 2297 | if (Array.isArray(selected)) { |
| 2295 | 2298 | for (let i = selected.length - 1; i >= 0; i--) { |
| 2296 | 2299 | if (!tagIds.has(selected[i]) || isEmptyOpenBogusFolder(selected[i])) { |
| 2297 | 2300 | selected.splice(i, 1); |
| 2298 | 2301 | anyRemoved = true; |
| 2299 | 2302 | } |
| @@ -2302,7 +2305,7 @@ function removeMissingTagFilters() { | ||
| 2302 | 2305 | |
| 2303 | 2306 | if (Array.isArray(excluded)) { |
| 2304 | 2307 | for (let i = excluded.length - 1; i >= 0; i--) { |
| 2305 | 2308 | if (!tagIds.has(excluded[i]) || isEmptyOpenBogusFolder(excluded[i])) { |
| 2306 | 2309 | excluded.splice(i, 1); |
| 2307 | 2310 | anyRemoved = true; |
| 2308 | 2311 | } |