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
2287function removeMissingTagFilters() {2287function removeMissingTagFilters() {
2288 const tagIds = new Set(tags.map(tag => tag.id));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);
22892292
2290 for (const helper of [groupCandidatesFilter, groupMembersFilter, entitiesFilter]) {2293 for (const helper of [groupCandidatesFilter, groupMembersFilter, entitiesFilter]) {
2291 const { selected, excluded } = helper.getFilterData(FILTER_TYPES.TAG);2294 const { selected, excluded } = helper.getFilterData(FILTER_TYPES.TAG);
@@ -2293,7 +2296,7 @@ function removeMissingTagFilters() {
22932296
2294 if (Array.isArray(selected)) {2297 if (Array.isArray(selected)) {
2295 for (let i = selected.length - 1; i >= 0; i--) {2298 for (let i = selected.length - 1; i >= 0; i--) {
2296 if (!tagIds.has(selected[i])) {2299 if (!tagIds.has(selected[i]) || isEmptyOpenBogusFolder(selected[i])) {
2297 selected.splice(i, 1);2300 selected.splice(i, 1);
2298 anyRemoved = true;2301 anyRemoved = true;
2299 }2302 }
@@ -2302,7 +2305,7 @@ function removeMissingTagFilters() {
23022305
2303 if (Array.isArray(excluded)) {2306 if (Array.isArray(excluded)) {
2304 for (let i = excluded.length - 1; i >= 0; i--) {2307 for (let i = excluded.length - 1; i >= 0; i--) {
2305 if (!tagIds.has(excluded[i])) {2308 if (!tagIds.has(excluded[i]) || isEmptyOpenBogusFolder(excluded[i])) {
2306 excluded.splice(i, 1);2309 excluded.splice(i, 1);
2307 anyRemoved = true;2310 anyRemoved = true;
2308 }2311 }