« 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/generateTrackListItem.js4
-rw-r--r--src/data/things/track.js25
2 files changed, 22 insertions, 7 deletions
diff --git a/src/content/dependencies/generateTrackListItem.js b/src/content/dependencies/generateTrackListItem.js
index c4b7c21e..c8c57534 100644
--- a/src/content/dependencies/generateTrackListItem.js
+++ b/src/content/dependencies/generateTrackListItem.js
@@ -7,13 +7,13 @@ export default {
       relation('generateArtistCredit',
         track.artistContribs,
         contextContributions,
-        track.artistText),
+        track.artistTextInLists),
 
     acontextualCredit:
       relation('generateArtistCredit',
         track.artistContribs,
         [],
-        track.artistText),
+        track.artistTextInLists),
 
     colorStyle:
       relation('generateColorStyleAttribute', track.color),
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 64790a61..59246329 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -189,9 +189,25 @@ export class Track extends Thing {
       }),
     ],
 
-    artistContribs: [
-      inheritContributionListFromMainRelease(),
+    artistTextInLists: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(isContentString),
+      }),
 
+      exposeDependencyOrContinue({
+        dependency: 'artistText',
+      }),
+
+      withPropertyFromAlbum({
+        property: input.value('trackArtistText'),
+      }),
+
+      exposeDependency({
+        dependency: '#album.trackArtistText',
+      }),
+    ],
+
+    artistContribs: [
       withDate(),
 
       withResolvedContribs({
@@ -624,9 +640,8 @@ export class Track extends Thing {
 
       // Credits and contributors
 
-      'Artist Text': {
-        property: 'artistText',
-      },
+      'Artist Text': {property: 'artistText'},
+      'Artist Text In Lists': {property: 'artistTextInLists'},
 
       'Artists': {
         property: 'artistContribs',