« 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
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things')
-rw-r--r--src/data/things/additional-name.js21
-rw-r--r--src/data/things/album.js6
-rw-r--r--src/data/things/art-tag.js12
-rw-r--r--src/data/things/flash.js6
-rw-r--r--src/data/things/index.js2
-rw-r--r--src/data/things/track.js6
6 files changed, 44 insertions, 9 deletions
diff --git a/src/data/things/additional-name.js b/src/data/things/additional-name.js
new file mode 100644
index 00000000..b96fcd50
--- /dev/null
+++ b/src/data/things/additional-name.js
@@ -0,0 +1,21 @@
+import Thing from '#thing';
+
+import {contentString, simpleString, thing} from '#composite/wiki-properties';
+
+export class AdditionalName extends Thing {
+  static [Thing.getPropertyDescriptors] = ({}) => ({
+    // Update & expose
+
+    thing: thing(),
+
+    name: contentString(),
+    annotation: contentString(),
+  });
+
+  static [Thing.yamlDocumentSpec] = {
+    fields: {
+      'Name': {property: 'name'},
+      'Annotation': {property: 'annotation'},
+    },
+  };
+}
diff --git a/src/data/things/album.js b/src/data/things/album.js
index 2274c92a..7a7b387d 100644
--- a/src/data/things/album.js
+++ b/src/data/things/album.js
@@ -33,7 +33,6 @@ import {exitWithoutContribs, withDirectory, withCoverArtDate}
   from '#composite/wiki-data';
 
 import {
-  additionalNameList,
   color,
   commentatorArtists,
   constitutibleArtwork,
@@ -69,6 +68,7 @@ export class Album extends Thing {
 
   static [Thing.getPropertyDescriptors] = ({
     AdditionalFile,
+    AdditionalName,
     ArtTag,
     Artwork,
     CommentaryEntry,
@@ -102,7 +102,9 @@ export class Album extends Thing {
     color: color(),
     urls: urls(),
 
-    additionalNames: additionalNameList(),
+    additionalNames: thingList({
+      class: input.value(AdditionalName),
+    }),
 
     bandcampAlbumIdentifier: simpleString(),
     bandcampArtworkIdentifier: simpleString(),
diff --git a/src/data/things/art-tag.js b/src/data/things/art-tag.js
index 57e156ee..0ec1ff31 100644
--- a/src/data/things/art-tag.js
+++ b/src/data/things/art-tag.js
@@ -12,7 +12,6 @@ import {exitWithoutDependency, exposeDependency, exposeUpdateValueOrContinue}
   from '#composite/control-flow';
 
 import {
-  additionalNameList,
   annotatedReferenceList,
   color,
   contentString,
@@ -23,6 +22,7 @@ import {
   name,
   soupyFind,
   soupyReverse,
+  thingList,
   urls,
   wikiData,
 } from '#composite/wiki-properties';
@@ -34,7 +34,11 @@ export class ArtTag extends Thing {
   static [Thing.referenceType] = 'tag';
   static [Thing.friendlyName] = `Art Tag`;
 
-  static [Thing.getPropertyDescriptors] = ({Album, Track}) => ({
+  static [Thing.getPropertyDescriptors] = ({
+    AdditionalName,
+    Album,
+    Track,
+  }) => ({
     // Update & expose
 
     name: name('Unnamed Art Tag'),
@@ -55,7 +59,9 @@ export class ArtTag extends Thing {
       },
     ],
 
-    additionalNames: additionalNameList(),
+    additionalNames: thingList({
+      class: input.value(AdditionalName),
+    }),
 
     description: contentString(),
 
diff --git a/src/data/things/flash.js b/src/data/things/flash.js
index a0bcb523..11b19ebc 100644
--- a/src/data/things/flash.js
+++ b/src/data/things/flash.js
@@ -27,7 +27,6 @@ import {
 } from '#composite/control-flow';
 
 import {
-  additionalNameList,
   color,
   commentatorArtists,
   constitutibleArtwork,
@@ -54,6 +53,7 @@ export class Flash extends Thing {
   static [Thing.referenceType] = 'flash';
 
   static [Thing.getPropertyDescriptors] = ({
+    AdditionalName,
     CommentaryEntry,
     CreditingSourcesEntry,
     Track,
@@ -127,7 +127,9 @@ export class Flash extends Thing {
 
     urls: urls(),
 
-    additionalNames: additionalNameList(),
+    additionalNames: thingList({
+      class: input.value(AdditionalName),
+    }),
 
     commentary: thingList({
       class: input.value(CommentaryEntry),
diff --git a/src/data/things/index.js b/src/data/things/index.js
index 3fda2bd1..11307b50 100644
--- a/src/data/things/index.js
+++ b/src/data/things/index.js
@@ -10,6 +10,7 @@ import {withEntries} from '#sugar';
 import Thing from '#thing';
 
 import * as additionalFileClasses from './additional-file.js';
+import * as additionalNameClasses from './additional-name.js';
 import * as albumClasses from './album.js';
 import * as artTagClasses from './art-tag.js';
 import * as artistClasses from './artist.js';
@@ -28,6 +29,7 @@ import * as wikiInfoClasses from './wiki-info.js';
 
 const allClassLists = {
   'additional-file.js': additionalFileClasses,
+  'additional-name.js': additionalNameClasses,
   'album.js': albumClasses,
   'art-tag.js': artTagClasses,
   'artist.js': artistClasses,
diff --git a/src/data/things/track.js b/src/data/things/track.js
index 8072c3cb..557ba2a7 100644
--- a/src/data/things/track.js
+++ b/src/data/things/track.js
@@ -38,7 +38,6 @@ import {
 } from '#composite/wiki-data';
 
 import {
-  additionalNameList,
   commentatorArtists,
   constitutibleArtworkList,
   contentString,
@@ -86,6 +85,7 @@ export class Track extends Thing {
 
   static [Thing.getPropertyDescriptors] = ({
     AdditionalFile,
+    AdditionalName,
     Album,
     ArtTag,
     Artwork,
@@ -134,7 +134,9 @@ export class Track extends Thing {
       class: input.value(Album),
     }),
 
-    additionalNames: additionalNameList(),
+    additionalNames: thingList({
+      class: input.value(AdditionalName),
+    }),
 
     bandcampTrackIdentifier: simpleString(),
     bandcampArtworkIdentifier: simpleString(),