« 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/data/things/Artwork.js11
-rw-r--r--src/data/things/contrib/AlbumAssetArtworkArtistContribution.js8
-rw-r--r--src/data/things/contrib/ArtworkArtistContribution.js8
3 files changed, 18 insertions, 9 deletions
diff --git a/src/data/things/Artwork.js b/src/data/things/Artwork.js
index c1aafa8f..7beb3567 100644
--- a/src/data/things/Artwork.js
+++ b/src/data/things/Artwork.js
@@ -73,7 +73,10 @@ export class Artwork extends Thing {
     // 'artistContribs', // from attached artwork or thing
   ];
 
-  static [Thing.getPropertyDescriptors] = ({ArtTag}) => ({
+  static [Thing.getPropertyDescriptors] = ({
+    ArtTag,
+    ArtworkArtistContribution,
+  }) => ({
     // Update & expose
 
     unqualifiedDirectory: directory({
@@ -128,6 +131,12 @@ export class Artwork extends Thing {
     artistContribs: [
       withResolvedContribs({
         from: input.updateValue({validate: isContributionList}),
+
+        // XXX: All artwork artist contributions, as resolved from update value
+        // (*not* those constituted from thing), are generic artwork contribs.
+        // The class should be specified by whatever the artwork is placed on!!
+        class: input.value(ArtworkArtistContribution),
+
         date: 'date',
         thingProperty: input.thisProperty(),
         artistProperty: 'artistContribsArtistProperty',
diff --git a/src/data/things/contrib/AlbumAssetArtworkArtistContribution.js b/src/data/things/contrib/AlbumAssetArtworkArtistContribution.js
index a178ca13..fbc3f719 100644
--- a/src/data/things/contrib/AlbumAssetArtworkArtistContribution.js
+++ b/src/data/things/contrib/AlbumAssetArtworkArtistContribution.js
@@ -3,18 +3,10 @@ import Thing from '#thing';
 
 import {exposeConstant} from '#composite/control-flow';
 
-import {hasAnnotationFront} from '#composite/things/contribution';
-
 import {ArtworkArtistContribution} from './ArtworkArtistContribution.js';
 
 export class AlbumAssetArtworkArtistContribution extends ArtworkArtistContribution {
   static [Thing.getPropertyDescriptors] = () => ({
     isAlbumAssetArtworkArtistContribution: exposeConstant(V(true)),
-
-    recognizedAnnotationFronts:
-      exposeConstant(V(['edits for wiki'])),
-
-    isEditsForWikiCredit:
-      hasAnnotationFront(V('edits for wiki')),
   });
 }
diff --git a/src/data/things/contrib/ArtworkArtistContribution.js b/src/data/things/contrib/ArtworkArtistContribution.js
index 5b1b68d8..a47f2391 100644
--- a/src/data/things/contrib/ArtworkArtistContribution.js
+++ b/src/data/things/contrib/ArtworkArtistContribution.js
@@ -3,10 +3,18 @@ import Thing from '#thing';
 
 import {exposeConstant} from '#composite/control-flow';
 
+import {hasAnnotationFront} from '#composite/things/contribution';
+
 import {Contribution} from './Contribution.js';
 
 export class ArtworkArtistContribution extends Contribution {
   static [Thing.getPropertyDescriptors] = () => ({
     isArtworkArtistContribution: exposeConstant(V(true)),
+
+    recognizedAnnotationFronts:
+      exposeConstant(V(['edits for wiki'])),
+
+    isEditsForWikiCredit:
+      hasAnnotationFront(V('edits for wiki')),
   });
 }