« get me outta code hell

data: "Reference By Directory" field with schnuance - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/album
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-02-16 16:26:06 -0400
committer(quasar) nebula <qznebula@protonmail.com>2026-02-16 16:26:06 -0400
commit83d037e83fc5f7b8af3bb8b74b59e7accf0a2a42 (patch)
treea648af9d4d029b1cb84e15d32320fd7adb821284 /src/data/things/album
parentca486f58957a9d83cc1b9e14addfebb71f57d029 (diff)
data: "Reference By Directory" field with schnuance preview
Diffstat (limited to 'src/data/things/album')
-rw-r--r--src/data/things/album/Album.js26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/data/things/album/Album.js b/src/data/things/album/Album.js
index 8dcc6854..61420e52 100644
--- a/src/data/things/album/Album.js
+++ b/src/data/things/album/Album.js
@@ -7,6 +7,7 @@ import {is, isContributionList, isDate, isDirectory, isNumber}
 import {
   parseAdditionalFiles,
   parseAdditionalNames,
+  parseAlwaysReferenceByDirectory,
   parseAnnotatedReferences,
   parseArtwork,
   parseCommentary,
@@ -100,7 +101,21 @@ export class Album extends Thing {
     ],
 
     alwaysReferenceByDirectory: flag(V(false)),
-    alwaysReferenceTracksByDirectory: flag(V(false)),
+
+    referenceTracksByDirectory: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(
+          is(...[
+            'always',
+            'outside album',
+            // 'outside groups',
+            'normally',
+          ])),
+      }),
+
+      exposeConstant(V('normally')),
+    ],
+
     suffixTrackDirectories: flag(V(false)),
 
     style: [
@@ -567,7 +582,14 @@ export class Album extends Thing {
       'Directory Suffix': {property: 'directorySuffix'},
       'Suffix Track Directories': {property: 'suffixTrackDirectories'},
       'Always Reference By Directory': {property: 'alwaysReferenceByDirectory'},
-      'Always Reference Tracks By Directory': {property: 'alwaysReferenceTracksByDirectory'},
+
+      'Reference Tracks By Directory': {property: 'referenceTracksByDirectory'},
+
+      'Always Reference Tracks By Directory': {
+        property: 'referenceTracksByDirectory',
+        transform: parseAlwaysReferenceByDirectory,
+      },
+
       'Style': {property: 'style'},
 
       'Bandcamp Album ID': {