diff options
| author | (quasar) nebula <qznebula@protonmail.com> | 2026-02-12 16:54:09 -0400 |
|---|---|---|
| committer | (quasar) nebula <qznebula@protonmail.com> | 2026-02-12 16:58:12 -0400 |
| commit | 05a176b1b556dc78ca3bf819a4bd0d073bc23cad (patch) | |
| tree | 5a97fe8b3b532f699b90d166a0959d5bf6a15023 /src/static/js/client | |
| parent | afe80f393d1569ba22f03941e808a66ddcd69e77 (diff) | |
search, client: handle singles
Diffstat (limited to 'src/static/js/client')
| -rw-r--r-- | src/static/js/client/sidebar-search.js | 32 |
1 files changed, 27 insertions, 5 deletions
diff --git a/src/static/js/client/sidebar-search.js b/src/static/js/client/sidebar-search.js index d63b9708..18ee6dfa 100644 --- a/src/static/js/client/sidebar-search.js +++ b/src/static/js/client/sidebar-search.js @@ -74,6 +74,7 @@ export const info = { albumResultKindString: null, artistResultKindString: null, groupResultKindString: null, + singleResultKindString: null, tagResultKindString: null, groupResultDisambiguatorString: null, @@ -207,6 +208,9 @@ export function getPageReferences() { info.groupResultKindString = findString('group-result-kind'); + info.singleResultKindString = + findString('single-result-kind'); + info.tagResultKindString = findString('tag-result-kind'); @@ -879,10 +883,26 @@ function fillResultElements(results, { } = {}) { const tidiedResults = tidyResults(results); - const filteredResults = - (filterType - ? tidiedResults.filter(result => result.referenceType === filterType) - : tidiedResults); + let filteredResults = tidiedResults; + + if (filterType) { + filteredResults = filteredResults + .filter(result => result.referenceType === filterType); + } + + if (!filterType) { + filteredResults = filteredResults + .filter(result => { + if (result.referenceType !== 'track') return true; + if (result.data.classification !== 'single') return true; + return !filteredResults.find(otherResult => { + if (otherResult.referenceType !== 'album') return false; + return otherResult.name === result.parentName; + }); + }); + } + + filteredResults = filteredResults while (info.results.firstChild) { info.results.firstChild.remove(); @@ -992,7 +1012,9 @@ function generateSidebarSearchResult(result, results) { openAlbum(result.directory); preparedSlots.kindString = - info.albumResultKindString; + (result.data.classification === 'single' + ? info.singleResultKindString + : info.albumResultKindString); break; } |