diff options
Diffstat (limited to 'src/data/things/album')
| -rw-r--r-- | src/data/things/album/Album.js | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/data/things/album/Album.js b/src/data/things/album/Album.js index 2a21d52e..47abb73a 100644 --- a/src/data/things/album/Album.js +++ b/src/data/things/album/Album.js @@ -4,6 +4,7 @@ import Thing from '#thing'; import {getKebabCase} from '#wiki-data'; import { + anyOf, is, isBoolean, isContributionList, @@ -138,11 +139,40 @@ export class Album extends Thing { return true; }, }), + + suffix: 'suffixDirectory', }), exposeDependency('#directory'), ], + suffixDirectory: [ + exposeUpdateValueOrContinue({ + validate: input.value( + anyOf(is(false), isDirectory)), + }), + + { + transform: (value, continuation) => + (value === false + ? null + : continuation()), + }, + + { + dependencies: ['nameDetail'], + compute(continuation, {nameDetail}) { + if (nameDetail) { + return getKebabCase(nameDetail); + } + + return continuation(); + }, + }, + + exposeConstant(V(null)), + ], + directorySuffixForTracks: [ exposeUpdateValueOrContinue({ validate: input.value(isDirectory), @@ -660,6 +690,8 @@ export class Album extends Thing { 'Name Detail For Tracks': {property: 'nameDetailForTracks'}, 'Directory': {property: 'directory'}, + 'Suffix Own Directory': {property: 'suffixDirectory'}, + 'Directory Suffix': {property: 'directorySuffixForTracks'}, 'Suffix Track Directories': {property: 'suffixTrackDirectoriesByDefault'}, |