« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/content/dependencies/generateGroupGalleryPageAlbumGrid.js17
-rw-r--r--src/strings-default.yaml8
2 files changed, 18 insertions, 7 deletions
diff --git a/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js b/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js
index 37c1951d..9e25049e 100644
--- a/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js
+++ b/src/content/dependencies/generateGroupGalleryPageAlbumGrid.js
@@ -45,6 +45,8 @@ export default {
       albums.map(album =>
         (album.hideDuration
           ? null
+       : album.style === 'single'
+          ? album.tracks[0]?.duration ?? null
           : getTotalDuration(album.tracks))),
 
     notFromThisGroup:
@@ -81,16 +83,21 @@ export default {
             tracks: data.tracks,
             duration: data.durations,
           }).map(({style, tracks, duration}) =>
-              (style === 'single' && duration
+              (!duration
+                ? null
+             : style === 'single' && tracks > 1
+               ? language.$(capsule, 'details.albumLength.single.withMultipleTracks', {
+                   time: language.formatDuration(duration),
+                   tracks: language.countTracks(tracks, {unit: true}),
+                 })
+             : style === 'single'
                 ? language.$(capsule, 'details.albumLength.single', {
                     time: language.formatDuration(duration),
                   })
-             : duration
-                ? language.$(capsule, 'details.albumLength', {
+                : language.$(capsule, 'details.albumLength', {
                     tracks: language.countTracks(tracks, {unit: true}),
                     time: language.formatDuration(duration),
-                  })
-                : null)),
+                  }))),
 
         revealAllWarnings: data.allWarnings,
       })),
diff --git a/src/strings-default.yaml b/src/strings-default.yaml
index dca17bbd..b105cb62 100644
--- a/src/strings-default.yaml
+++ b/src/strings-default.yaml
@@ -1019,8 +1019,12 @@ misc:
 
       accent: "({DETAILS})"
 
-      albumLength: "{TRACKS}, {TIME}"
-      albumLength.single: "single, {TIME}"
+      albumLength: >-
+        {TRACKS}, {TIME}
+      albumLength.single: >-
+        single, {TIME}
+      albumLength.single.withMultipleTracks: >-
+        single, {TRACKS}, {TIME}+
 
       coverArtists: "Artwork by {ARTISTS}"
       coverArtists.customLabel: "{LABEL} by {ARTISTS}"