diff options
Diffstat (limited to 'src/content/dependencies/generateGroupGalleryPage.js')
-rw-r--r-- | src/content/dependencies/generateGroupGalleryPage.js | 58 |
1 files changed, 21 insertions, 37 deletions
diff --git a/src/content/dependencies/generateGroupGalleryPage.js b/src/content/dependencies/generateGroupGalleryPage.js index d07847c6..d51366ca 100644 --- a/src/content/dependencies/generateGroupGalleryPage.js +++ b/src/content/dependencies/generateGroupGalleryPage.js @@ -10,6 +10,7 @@ export default { 'generateGroupSecondaryNav', 'generateGroupSidebar', 'generatePageLayout', + 'generateQuickDescription', 'image', 'linkAlbum', 'linkListing', @@ -52,9 +53,12 @@ export default { relations.carouselImages = carouselAlbums - .map(album => relation('image', album.artTags)); + .map(album => relation('image', album.coverArtworks[0])); } + relations.quickDescription = + relation('generateQuickDescription', group); + relations.coverGrid = relation('generateCoverGrid'); @@ -65,7 +69,7 @@ export default { relations.gridImages = albums.map(album => (album.hasCoverArt - ? relation('image', album.artTags) + ? relation('image', album.coverArtworks[0]) : relation('image'))); return relations; @@ -82,35 +86,19 @@ export default { data.numAlbums = albums.length; data.numTracks = tracks.length; - data.totalDuration = getTotalDuration(tracks, {originalReleasesOnly: true}); + data.totalDuration = getTotalDuration(tracks, {mainReleasesOnly: true}); data.gridNames = albums.map(album => album.name); data.gridDurations = albums.map(album => getTotalDuration(album.tracks)); data.gridNumTracks = albums.map(album => album.tracks.length); - data.gridPaths = - albums.map(album => - (album.hasCoverArt - ? ['media.albumCover', album.directory, album.coverArtFileExtension] - : null)); - - const carouselAlbums = filterItemsForCarousel(group.featuredAlbums); - - if (!empty(group.featuredAlbums)) { - data.carouselPaths = - carouselAlbums.map(album => - (album.hasCoverArt - ? ['media.albumCover', album.directory, album.coverArtFileExtension] - : null)); - } - return data; }, - generate(data, relations, {html, language}) { - return relations.layout - .slots({ - title: language.$('groupGalleryPage.title', {group: data.name}), + generate: (data, relations, {html, language}) => + language.encapsulate('groupGalleryPage', pageCapsule => + relations.layout.slots({ + title: language.$(pageCapsule, 'title', {group: data.name}), headingMode: 'static', color: data.color, @@ -120,16 +108,13 @@ export default { relations.coverCarousel ?.slots({ links: relations.carouselLinks, - images: - stitchArrays({ - image: relations.carouselImages, - path: data.carouselPaths, - }).map(({image, path}) => - image.slot('path', path)), + images: relations.carouselImages, }), + relations.quickDescription, + html.tag('p', {class: 'quick-info'}, - language.$('groupGalleryPage.infoLine', { + language.$(pageCapsule, 'infoLine', { tracks: html.tag('b', language.countTracks(data.numTracks, { @@ -153,25 +138,25 @@ export default { .slots({ links: relations.gridLinks, names: data.gridNames, + images: stitchArrays({ image: relations.gridImages, - path: data.gridPaths, name: data.gridNames, - }).map(({image, path, name}) => + }).map(({image, name}) => image.slots({ - path, missingSourceContent: - language.$('misc.albumGrid.noCoverArt', { + language.$('misc.coverGrid.noCoverArt', { album: name, }), })), + info: stitchArrays({ numTracks: data.gridNumTracks, duration: data.gridDurations, }).map(({numTracks, duration}) => - language.$('misc.albumGrid.details', { + language.$('misc.coverGrid.details.albumLength', { tracks: language.countTracks(numTracks, {unit: true}), time: language.formatDuration(duration), })), @@ -193,6 +178,5 @@ export default { secondaryNav: relations.secondaryNav ?? null, - }); - }, + })), }; |