« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things.js')
-rw-r--r--src/data/things.js13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/data/things.js b/src/data/things.js
index 330419c..0269731 100644
--- a/src/data/things.js
+++ b/src/data/things.js
@@ -546,7 +546,6 @@ Track.propertyDescriptors = {
     urls: Thing.common.urls(),
     dateFirstReleased: Thing.common.simpleDate(),
 
-    hasCoverArt: Thing.common.flag(true),
     hasURLs: Thing.common.flag(true),
 
     referencedTracksByRef: Thing.common.referenceList(Track),
@@ -556,6 +555,18 @@ Track.propertyDescriptors = {
     contributorContribsByRef: Thing.common.contribsByRef(),
     coverArtistContribsByRef: Thing.common.contribsByRef(),
 
+    hasCoverArt: {
+        flags: {update: true, expose: true},
+
+        update: {validate: isBoolean},
+
+        expose: {
+            dependencies: ['albumData'],
+            transform: (hasCoverArt, { albumData, [Track.instance]: track }) => (
+                hasCoverArt ?? Track.findAlbum(track, albumData)?.hasTrackArt ?? true)
+        }
+    },
+
     // Previously known as: (track).aka
     originalReleaseTrackByRef: Thing.common.singleReference(Track),