« 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/album/TrackSection.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/data/things/album/TrackSection.js')
-rw-r--r--src/data/things/album/TrackSection.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/data/things/album/TrackSection.js b/src/data/things/album/TrackSection.js
index a7763184..15688735 100644
--- a/src/data/things/album/TrackSection.js
+++ b/src/data/things/album/TrackSection.js
@@ -3,9 +3,16 @@ import {inspect} from 'node:util';
 import {colors} from '#cli';
 import {input, V} from '#composite';
 import Thing from '#thing';
-import {isBoolean, isColor, isDirectory, isNumber} from '#validators';
 import {parseDate} from '#yaml';
 
+import {
+  isBoolean,
+  isColor,
+  isDirectory,
+  isExcludingURLsReason,
+  isNumber,
+} from '#validators';
+
 import {withLengthOfList, withNearbyItemFromList, withPropertyFromObject}
   from '#composite/data';
 
@@ -112,6 +119,15 @@ export class TrackSection extends Thing {
       exposeDependency('#album.countTracksInArtistTotals'),
     ],
 
+    excludingTrackURLs: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(isExcludingURLsReason),
+      }),
+
+      withPropertyFromObject('album', V('excludingTrackURLs')),
+      exposeDependency('#album.excludingTrackURLs'),
+    ],
+
     isDefaultTrackSection: flag(V(false)),
 
     description: contentString(),
@@ -196,6 +212,7 @@ export class TrackSection extends Thing {
       },
 
       'Count Tracks In Artist Totals': {property: 'countTracksInArtistTotals'},
+      'Excluding Track URLs': {property: 'excludingTrackURLs'},
 
       'Description': {property: 'description'},
     },