« get me outta code hell

data: Track: 'Name Detail: section' - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src/data/things/Track.js
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-06-10 10:32:21 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-06-10 10:32:21 -0300
commit8ac83829b4f1add4c57504210d08758e63540853 (patch)
tree1a5f793d626f51ad405d49680c254a964f3c038c /src/data/things/Track.js
parent52272a8da9a798803abd1176a8294845e8567641 (diff)
data: Track: 'Name Detail: section'
Diffstat (limited to 'src/data/things/Track.js')
-rw-r--r--src/data/things/Track.js39
1 files changed, 31 insertions, 8 deletions
diff --git a/src/data/things/Track.js b/src/data/things/Track.js
index 1f7375be..f6b3346c 100644
--- a/src/data/things/Track.js
+++ b/src/data/things/Track.js
@@ -169,12 +169,12 @@ export class Track extends Thing {
           input.updateValue({
             validate:
               anyOf(
-                isBoolean,
-                is('album'),
+                is(false),
+                is('album', 'section'),
                 isDirectory,
                 strictArrayOf(
                   anyOf(
-                    is('album'),
+                    is('album', 'section'),
                     isDirectory))),
           }),
       }),
@@ -781,21 +781,37 @@ export class Track extends Thing {
         }) =>
           (nameDetail === 'album'
             ? null
+         : nameDetail === 'section'
+            ? null
             : nameDetail),
       },
     ],
 
     nameDetailAcrossWiki: [
       withPropertyFromObject('album', V('nameDetailForTracks')),
+      withPropertyFromObject('trackSection', V('nameDetailForTracks')),
 
       {
-        dependencies: ['_nameDetail', '#album.nameDetailForTracks'],
+        dependencies: [
+          '_nameDetail',
+          '#album.nameDetailForTracks',
+          '#trackSection.nameDetailForTracks',
+        ],
+
         compute: ({
-          ['_nameDetail']: nameDetail,
-          ['#album.nameDetailForTracks']: nameDetailFromAlbum,
+          ['_nameDetail']:
+            nameDetail,
+
+          ['#album.nameDetailForTracks']:
+            albumNameDetailForTracks,
+
+          ['#trackSection.nameDetailForTracks']:
+            trackSectionNameDetailForTracks,
         }) =>
           (nameDetail === 'album'
-            ? nameDetailFromAlbum
+            ? albumNameDetailForTracks
+         : nameDetail === 'section'
+            ? trackSectionNameDetailForTracks
             : nameDetail),
       },
     ],
@@ -1062,7 +1078,14 @@ export class Track extends Thing {
       'Name Detail': {property: 'nameDetail'},
 
       'Directory': {property: 'directory'},
-      'Suffix Directory': {property: 'suffixDirectory'},
+
+      'Suffix Directory': {
+        property: 'suffixDirectory',
+        transform: value =>
+          (value === true
+            ? 'album'
+            : value),
+      },
 
       'Reference By Directory': {property: 'referenceByDirectory'},