diff options
Diffstat (limited to 'src/static/js')
| -rw-r--r-- | src/static/js/client-util.js | 1 | ||||
| -rw-r--r-- | src/static/js/client/album-commentary-sidebar.js | 5 | ||||
| -rw-r--r-- | src/static/js/client/css-compatibility-assistant.js | 28 | ||||
| -rw-r--r-- | src/static/js/client/index.js | 4 | ||||
| -rw-r--r-- | src/static/js/client/sidebar-search.js | 27 | ||||
| -rw-r--r-- | src/static/js/client/summary-nested-link.js | 46 | ||||
| -rw-r--r-- | src/static/js/search-worker.js | 25 |
7 files changed, 30 insertions, 106 deletions
diff --git a/src/static/js/client-util.js b/src/static/js/client-util.js index a6846714..de54945c 100644 --- a/src/static/js/client-util.js +++ b/src/static/js/client-util.js @@ -103,6 +103,7 @@ export const openArtist = d => rebase(`artist/${d}/`); export const openFlash = d => rebase(`flash/${d}/`); export const openGroup = d => rebase(`group/${d}/`); export const openTrack = d => rebase(`track/${d}/`); +export const openVGMAlbum = d => rebase(`album/vgm/${d}/`); // TODO: This should also use urlSpec. diff --git a/src/static/js/client/album-commentary-sidebar.js b/src/static/js/client/album-commentary-sidebar.js index d7c4a591..144544ed 100644 --- a/src/static/js/client/album-commentary-sidebar.js +++ b/src/static/js/client/album-commentary-sidebar.js @@ -23,7 +23,10 @@ export const info = { }; export function getPageReferences() { - if (document.documentElement.dataset.urlKey !== 'localized.albumCommentary') { + if ( + document.documentElement.dataset.urlKey !== 'localized.albumCommentary' && + document.documentElement.dataset.urlKey !== 'localized.vgmAlbumCommentary' + ) { return; } diff --git a/src/static/js/client/css-compatibility-assistant.js b/src/static/js/client/css-compatibility-assistant.js deleted file mode 100644 index 37b0645a..00000000 --- a/src/static/js/client/css-compatibility-assistant.js +++ /dev/null @@ -1,28 +0,0 @@ -import {stitchArrays} from '../../shared-util/sugar.js'; - -export const info = { - id: 'cssCompatibilityAssistantInfo', - - coverArtworks: null, - coverArtworkImageDetails: null, -}; - -export function getPageReferences() { - info.coverArtworks = - Array.from(document.querySelectorAll('.cover-artwork')); - - info.coverArtworkImageDetails = - info.coverArtworks - .map(artwork => artwork.querySelector('.image-details')); -} - -export function mutatePageContent() { - stitchArrays({ - coverArtwork: info.coverArtworks, - imageDetails: info.coverArtworkImageDetails, - }).forEach(({coverArtwork, imageDetails}) => { - if (imageDetails) { - coverArtwork.classList.add('has-image-details'); - } - }); -} diff --git a/src/static/js/client/index.js b/src/static/js/client/index.js index 9296dff1..65254b10 100644 --- a/src/static/js/client/index.js +++ b/src/static/js/client/index.js @@ -6,7 +6,6 @@ import * as artTagGalleryFilterModule from './art-tag-gallery-filter.js'; import * as artTagNetworkModule from './art-tag-network.js'; import * as artistExternalLinkTooltipModule from './artist-external-link-tooltip.js'; import * as artistRollingWindowModule from './artist-rolling-window.js'; -import * as cssCompatibilityAssistantModule from './css-compatibility-assistant.js'; import * as datetimestampTooltipModule from './datetimestamp-tooltip.js'; import * as draggedLinkModule from './dragged-link.js'; import * as expandableGridSectionModule from './expandable-grid-section.js'; @@ -22,7 +21,6 @@ import * as revealAllGridControlModule from './reveal-all-grid-control.js'; import * as scriptedLinkModule from './scripted-link.js'; import * as sidebarSearchModule from './sidebar-search.js'; import * as stickyHeadingModule from './sticky-heading.js'; -import * as summaryNestedLinkModule from './summary-nested-link.js'; import * as textWithTooltipModule from './text-with-tooltip.js'; import * as wikiSearchModule from './wiki-search.js'; @@ -33,7 +31,6 @@ export const modules = [ artTagNetworkModule, artistExternalLinkTooltipModule, artistRollingWindowModule, - cssCompatibilityAssistantModule, datetimestampTooltipModule, draggedLinkModule, expandableGridSectionModule, @@ -49,7 +46,6 @@ export const modules = [ scriptedLinkModule, sidebarSearchModule, stickyHeadingModule, - summaryNestedLinkModule, textWithTooltipModule, wikiSearchModule, ]; diff --git a/src/static/js/client/sidebar-search.js b/src/static/js/client/sidebar-search.js index 94f1e4ef..61a33c0d 100644 --- a/src/static/js/client/sidebar-search.js +++ b/src/static/js/client/sidebar-search.js @@ -16,6 +16,7 @@ import { openFlash, openGroup, openTrack, + openVGMAlbum, rebase, templateContent, } from '../client-util.js'; @@ -84,6 +85,7 @@ export const info = { groupResultKindString: null, singleResultKindString: null, tagResultKindString: null, + vgmAlbumResultKindString: null, groupResultDisambiguatorString: null, flashResultDisambiguatorString: null, @@ -242,6 +244,9 @@ export function getPageReferences() { info.tagResultKindString = findString('tag-result-kind'); + info.vgmAlbumResultKindString = + findString('vgm-album-result-kind'); + info.groupResultDisambiguatorString = findString('group-result-disambiguator'); @@ -1109,11 +1114,15 @@ function generateSidebarSearchResult(result, results) { switch (result.referenceType) { case 'album': { preparedSlots.href = - openAlbum(result.directory); + (result.data.classification === 'in-game vgm' + ? openVGMAlbum(result.directory) + : openAlbum(result.directory)); preparedSlots.kindString = (result.data.classification === 'single' ? info.singleResultKindString + : result.data.classification === 'in-game vgm' + ? info.vgmAlbumResultKindString : info.albumResultKindString); break; @@ -1252,11 +1261,19 @@ function generateSidebarSearchResult(result, results) { } function getSearchResultName(result) { - return ( + const name = result.data.name ?? - result.data.primaryName ?? - null - ); + result.data.primaryName; + + if (!name) { + return null; + } + + if (result.data.nameDetail) { + return `${name} (${result.data.nameDetail})`; + } + + return name; } function getSearchResultImageSource(result) { diff --git a/src/static/js/client/summary-nested-link.js b/src/static/js/client/summary-nested-link.js deleted file mode 100644 index 1c4e7e4b..00000000 --- a/src/static/js/client/summary-nested-link.js +++ /dev/null @@ -1,46 +0,0 @@ -import { - empty, - filterMultipleArrays, - stitchArrays, -} from '../../shared-util/sugar.js'; - -export const info = { - id: 'summaryNestedLinkInfo', - - summaries: null, - links: null, -}; - -export function getPageReferences() { - info.summaries = - Array.from(document.getElementsByTagName('summary')); - - info.links = - info.summaries - .map(summary => - Array.from(summary.getElementsByTagName('a'))); - - filterMultipleArrays( - info.summaries, - info.links, - (_summary, links) => !empty(links)); -} - -export function addPageListeners() { - for (const {summary, links} of stitchArrays({ - summary: info.summaries, - links: info.links, - })) { - for (const link of links) { - link.addEventListener('mouseover', () => { - link.classList.add('nested-hover'); - summary.classList.add('has-nested-hover'); - }); - - link.addEventListener('mouseout', () => { - link.classList.remove('nested-hover'); - summary.classList.remove('has-nested-hover'); - }); - } - } -} diff --git a/src/static/js/search-worker.js b/src/static/js/search-worker.js index 9ccaa95d..a04752d4 100644 --- a/src/static/js/search-worker.js +++ b/src/static/js/search-worker.js @@ -486,30 +486,11 @@ function performSearchAction({query, options}) { const interestingFieldCombinations = [ ['primaryName'], + ['primaryName', 'nameDetail'], ['additionalNames'], - - ['primaryName', 'parentName', 'groups'], - ['primaryName', 'parentName'], - ['primaryName', 'groups', 'contributors'], - ['primaryName', 'groups', 'artTags'], + ['additionalNames', 'nameDetail'], ['primaryName', 'groups'], - ['additionalNames', 'groups'], - ['primaryName', 'contributors'], - ['primaryName', 'artTags'], - ['parentName', 'groups', 'artTags'], - ['parentName', 'artTags'], - ['groups', 'contributors'], - ['groups', 'artTags'], - - // This prevents just matching *everything* tagged "john" if you - // only search "john", but it actually supports matching more than - // *two* tags at once: "john rose lowas" works! This is thanks to - // flexsearch matching multiple field values in a single query. - ['artTags', 'artTags'], - - ['contributors', 'parentName'], - ['contributors', 'groups'], - ['primaryName', 'contributors'], + ['primaryName', 'nameDetail', 'groups'], ]; function queryGenericIndex(query, options) { |