diff options
Diffstat (limited to 'src/data/things/Track.js')
| -rw-r--r-- | src/data/things/Track.js | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/src/data/things/Track.js b/src/data/things/Track.js index 785d0080..c47729e9 100644 --- a/src/data/things/Track.js +++ b/src/data/things/Track.js @@ -10,6 +10,7 @@ import Thing from '#thing'; import {compareKebabCase} from '#wiki-data'; import { + anyOf, is, isBoolean, isColor, @@ -36,8 +37,10 @@ import { parseDimensions, parseDuration, parseLyrics, + parseMidiProjectFiles, parseMusicVideos, parseReferencingSources, + parseSheetMusicFiles, parseURLs, } from '#yaml'; @@ -385,7 +388,10 @@ export class Track extends Thing { excludingURLs: [ exposeUpdateValueOrContinue({ - validate: input.value(isExcludingURLsReason), + validate: input.value( + anyOf( + is(false), + isExcludingURLsReason)), }), withPropertyFromObject('trackSection', V('excludingTrackURLs')), @@ -1119,12 +1125,12 @@ export class Track extends Thing { 'Sheet Music Files': { property: 'sheetMusicFiles', - transform: parseAdditionalFiles, + transform: parseSheetMusicFiles, }, 'MIDI Project Files': { property: 'midiProjectFiles', - transform: parseAdditionalFiles, + transform: parseMidiProjectFiles, }, // Content entries @@ -1184,9 +1190,9 @@ export class Track extends Thing { ], }, - {message: `Don't include URLs alongside Excluding URLs`, fields: [ + {message: `Don't include URLs alongside Excluding URLs, unless Excluding URLs is false`, fields: [ 'URLs', - 'Excluding URLs', + ['Excluding URLs', v => v !== false], ]}, ], }; @@ -1365,14 +1371,10 @@ export class Track extends Thing { }, }; - getOwnAdditionalFilePath(_file, filename) { + getOwnAdditionalFilePath(file, filename) { if (!this.album) return null; - return [ - 'media.albumAdditionalFile', - this.album.directory, - filename, - ]; + return this.album.getOwnAdditionalFilePath(file, filename); } getOwnArtworkPath(artwork) { |