Remove open bogus folder tags that don't have any entities assigned (#5225) Fixes #5222

d8f39269b96d482cd3671de9a4d66ef412c8bb39

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
1 files changed, +5 -2Showing whitespace changes
public/scripts/tags.js+5 -2
@@ -2286,6 +2286,9 @@ function printViewTagList(tagContainer, empty = true) {
22862286
22872287function removeMissingTagFilters() {
22882288 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);
22892292
22902293 for (const helper of [groupCandidatesFilter, groupMembersFilter, entitiesFilter]) {
22912294 const { selected, excluded } = helper.getFilterData(FILTER_TYPES.TAG);
@@ -2293,7 +2296,7 @@ function removeMissingTagFilters() {
22932296
22942297 if (Array.isArray(selected)) {
22952298 for (let i = selected.length - 1; i >= 0; i--) {
22962299 if (!tagIds.has(selected[i]) || isEmptyOpenBogusFolder(selected[i])) {
22972300 selected.splice(i, 1);
22982301 anyRemoved = true;
22992302 }
@@ -2302,7 +2305,7 @@ function removeMissingTagFilters() {
23022305
23032306 if (Array.isArray(excluded)) {
23042307 for (let i = excluded.length - 1; i >= 0; i--) {
23052308 if (!tagIds.has(excluded[i]) || isEmptyOpenBogusFolder(excluded[i])) {
23062309 excluded.splice(i, 1);
23072310 anyRemoved = true;
23082311 }