« 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
diff options
context:
space:
mode:
Diffstat (limited to 'src/data')
-rw-r--r--src/data/things/music-video.js15
-rw-r--r--src/data/things/track.js12
2 files changed, 15 insertions, 12 deletions
diff --git a/src/data/things/music-video.js b/src/data/things/music-video.js
index 267349e8..6c1e3ba6 100644
--- a/src/data/things/music-video.js
+++ b/src/data/things/music-video.js
@@ -5,7 +5,7 @@ import {input, V} from '#composite';
 import find from '#find';
 import Thing from '#thing';
 import {isDate, isStringNonEmpty, isURL} from '#validators';
-import {parseContributors} from '#yaml';
+import {parseContributors, parseDate} from '#yaml';
 
 import {exposeConstant, exposeUpdateValueOrContinue}
   from '#composite/control-flow';
@@ -72,21 +72,14 @@ export class MusicVideo extends Thing {
     fields: {
       'Label': {property: 'label'},
       'Directory': {property: 'unqualifiedDirectory'},
-      'Date': {property: 'date'},
+      'Date': {property: 'date', transform: parseDate},
       'URL': {property: 'url'},
 
       'Cover Art File Extension': {property: 'coverArtFileExtension'},
       'Cover Art Dimensions': {property: 'coverArtDimensions'},
 
-      'Artists': {
-        property: 'artistContribs',
-        transform: parseContributors,
-      },
-
-      'Contributors': {
-        property: 'contributorContribs',
-        transform: parseContributors,
-      },
+      'Artists': {property: 'artistContribs', transform: parseContributors},
+      'Contributors': {property: 'contributorContribs', transform: parseContributors},
     },
   };
 
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 8652fbdf..5b40ca4d 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -492,7 +492,17 @@ export class Track extends Thing {
 
     // > Update & expose - Music videos
 
-    musicVideos: thingList(V(MusicVideo)),
+    musicVideos: [
+      exposeUpdateValueOrContinue(),
+
+      // TODO: Same situation as lyrics. Inherited music videos don't set
+      // the proper .thing property back to this track... but then, it needs
+      // to keep a reference to its original .thing to get its proper path,
+      // so maybe this is okay...
+      inheritFromMainRelease(),
+
+      thingList(V(MusicVideo)),
+    ],
 
     // > Update & expose - Additional files