« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/content/dependencies/generateAlbumReleaseInfo.js5
-rw-r--r--src/content/dependencies/generateCoverArtworkOriginDetails.js66
-rw-r--r--src/strings-default.yaml15
3 files changed, 48 insertions, 38 deletions
diff --git a/src/content/dependencies/generateAlbumReleaseInfo.js b/src/content/dependencies/generateAlbumReleaseInfo.js
index f9806c30..0abb412c 100644
--- a/src/content/dependencies/generateAlbumReleaseInfo.js
+++ b/src/content/dependencies/generateAlbumReleaseInfo.js
@@ -75,11 +75,6 @@ export default {
               date: language.formatDate(data.date),
             }),
 
-            language.$(capsule, 'artReleased', {
-              [language.onlyIfOptions]: ['date'],
-              date: language.formatDate(data.coverArtDate),
-            }),
-
             language.$(capsule, 'duration', {
               [language.onlyIfOptions]: ['duration'],
               duration:
diff --git a/src/content/dependencies/generateCoverArtworkOriginDetails.js b/src/content/dependencies/generateCoverArtworkOriginDetails.js
index c0109141..6cb529b1 100644
--- a/src/content/dependencies/generateCoverArtworkOriginDetails.js
+++ b/src/content/dependencies/generateCoverArtworkOriginDetails.js
@@ -3,6 +3,7 @@ import Thing from '#thing';
 export default {
   contentDependencies: [
     'generateArtistCredit',
+    'generateAbsoluteDatetimestamp',
     'linkAlbum',
     'transformContent',
   ],
@@ -25,17 +26,18 @@ export default {
       (query.artworkThingType === 'album'
         ? relation('linkAlbum', artwork.thing)
         : null),
+
+    datetimestamp:
+      (artwork.date !== artwork.thing.date
+        ? relation('generateAbsoluteDatetimestamp', artwork.date)
+        : null),
   }),
 
+
   data: (query, artwork) => ({
     label:
       artwork.label,
 
-    date:
-      (artwork.date !== artwork.thing.date
-        ? artwork.date
-        : null),
-
     artworkThingType:
       query.artworkThingType,
   }),
@@ -49,25 +51,36 @@ export default {
         {class: 'origin-details'},
 
         [
-          relations.credit.slots({
-            showAnnotation: true,
-            showExternalLinks: true,
-            showChronology: true,
-            showWikiEdits: true,
-
-            trimAnnotation: false,
-
-            chronologyKind: 'coverArt',
-
-            normalStringKey:
-              (data.label
-                ? capsule + '.artworkBy.customLabel'
-                : capsule + '.artworkBy'),
-
-            additionalStringOptions:
-              (data.label
-                ? {label: data.label}
-                : {}),
+          language.encapsulate(capsule, 'artworkBy', workingCapsule => {
+            const workingOptions = {};
+
+            if (data.label) {
+              workingCapsule += '.customLabel';
+              workingOptions.label = data.label;
+            }
+
+            if (relations.datetimestamp) {
+              workingCapsule += '.withYear';
+              workingOptions.year =
+                relations.datetimestamp.slots({
+                  style: 'year',
+                  tooltip: true,
+                });
+            }
+
+            return relations.credit.slots({
+              showAnnotation: true,
+              showExternalLinks: true,
+              showChronology: true,
+              showWikiEdits: true,
+
+              trimAnnotation: false,
+
+              chronologyKind: 'coverArt',
+
+              normalStringKey: workingCapsule,
+              additionalStringOptions: workingOptions,
+            });
           }),
 
           pagePath[0] === 'track' &&
@@ -77,11 +90,6 @@ export default {
                 relations.albumLink.slot('color', false),
             }),
 
-          language.$(capsule, 'released', {
-            [language.onlyIfOptions]: ['date'],
-            date: language.formatDate(data.date),
-          }),
-
           language.$(capsule, 'source', {
             [language.onlyIfOptions]: ['source'],
             source: relations.source.slot('mode', 'inline'),
diff --git a/src/strings-default.yaml b/src/strings-default.yaml
index 27cd33ec..751d8279 100644
--- a/src/strings-default.yaml
+++ b/src/strings-default.yaml
@@ -280,7 +280,6 @@ releaseInfo:
 
   released: "Released {DATE}."
   albumReleased: "Album released {DATE}."
-  artReleased: "Art released {DATE}."
   trackReleased: "Track released {DATE}."
   addedToWiki: "Added to wiki {DATE}."
 
@@ -901,10 +900,18 @@ misc:
   #   context, when just one cover is being spotlighted.
 
   coverArtwork:
-    artworkBy: "Artwork by {ARTISTS}"
-    artworkBy.customLabel: "{LABEL} by {ARTISTS}"
+    artworkBy: >-
+      Artwork by {ARTISTS}
+
+    artworkBy.customLabel: >-
+      {LABEL} by {ARTISTS}
+
+    artworkBy.withYear: >-
+      Artwork ({YEAR}) by {ARTISTS}
+
+    artworkBy.customLabel.withYear: >-
+      {LABEL} ({YEAR}) by {ARTISTS}
 
-    released: "Art released {DATE}"
     source: "Via {SOURCE}"
 
     trackArtFromAlbum: "Album cover for {ALBUM}"