« 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/composite/wiki-data/withResolvedSeriesList.js13
-rw-r--r--src/data/validators.js2
-rw-r--r--src/data/yaml.js2
3 files changed, 17 insertions, 0 deletions
diff --git a/src/data/composite/wiki-data/withResolvedSeriesList.js b/src/data/composite/wiki-data/withResolvedSeriesList.js
index bd2b0ecf..4ac74cc3 100644
--- a/src/data/composite/wiki-data/withResolvedSeriesList.js
+++ b/src/data/composite/wiki-data/withResolvedSeriesList.js
@@ -46,6 +46,8 @@ export default templateCompositeFrom({
         'name',
         'description',
         'albums',
+
+        'showAlbumArtists',
       ]),
     }),
 
@@ -76,23 +78,34 @@ export default templateCompositeFrom({
       fill: input.value(null),
     }),
 
+    fillMissingListItems({
+      list: '#serieses.showAlbumArtists',
+      fill: input.value(null),
+    }),
+
     {
       dependencies: [
         '#serieses.name',
         '#serieses.description',
         '#serieses.albums',
+
+        '#serieses.showAlbumArtists',
       ],
 
       compute: (continuation, {
         ['#serieses.name']: name,
         ['#serieses.description']: description,
         ['#serieses.albums']: albums,
+
+        ['#serieses.showAlbumArtists']: showAlbumArtists,
       }) => continuation({
         ['#seriesProperties']:
           stitchArrays({
             name,
             description,
             albums,
+
+            showAlbumArtists,
           }).map(properties => ({
               ...properties,
               group: input
diff --git a/src/data/validators.js b/src/data/validators.js
index dfb20ff0..39559cfa 100644
--- a/src/data/validators.js
+++ b/src/data/validators.js
@@ -717,6 +717,8 @@ export const isSeries = validateProperties({
   name: isName,
   description: optional(isContentString),
   albums: optional(validateReferenceList('album')),
+
+  showAlbumArtists: optional(isBoolean),
 });
 
 export const isSeriesList = validateArrayItems(isSeries);
diff --git a/src/data/yaml.js b/src/data/yaml.js
index f5394752..3f79aa65 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -473,6 +473,8 @@ export function parseSerieses(entries) {
       name: item['Name'],
       description: item['Description'] ?? null,
       albums: item['Albums'] ?? null,
+
+      showAlbumArtists: item['Show Album Artists'] ?? null,
     };
   });
 }