diff options
-rw-r--r-- | src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js | 2 | ||||
-rw-r--r-- | src/data/things/group.js | 44 |
2 files changed, 42 insertions, 4 deletions
diff --git a/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js b/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js index 66427d7e..d86b61e1 100644 --- a/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js +++ b/src/content/dependencies/generateGroupGalleryPageAlbumGridTab.js @@ -68,7 +68,7 @@ export default { (data.mode === 'groups' ? language.$(capsule, 'groups', { groups: - language.formatConjunctionList(data.groupNames), + language.formatUnitList(data.groupNames), }) : data.mode === 'artists' ? relations.artistCredit.slots({ diff --git a/src/data/things/group.js b/src/data/things/group.js index b491bc8f..0935dc93 100644 --- a/src/data/things/group.js +++ b/src/data/things/group.js @@ -5,10 +5,17 @@ import {inspect} from 'node:util'; import {colors} from '#cli'; import {input} from '#composite'; import Thing from '#thing'; -import {is} from '#validators'; +import {is, isBoolean} from '#validators'; import {parseAnnotatedReferences, parseSerieses} from '#yaml'; -import {exposeConstant} from '#composite/control-flow'; +import {withPropertyFromObject} from '#composite/data'; +import {withUniqueReferencingThing} from '#composite/wiki-data'; + +import { + exposeConstant, + exposeDependencyOrContinue, + exposeUpdateValueOrContinue, +} from '#composite/control-flow'; import { annotatedReferenceList, @@ -34,7 +41,31 @@ export class Group extends Thing { name: name('Unnamed Group'), directory: directory(), - excludeFromGalleryTabs: flag(false), + excludeFromGalleryTabs: [ + exposeUpdateValueOrContinue({ + validate: input.value(isBoolean), + }), + + withUniqueReferencingThing({ + reverse: soupyReverse.input('groupCategoriesWhichInclude'), + }).outputs({ + '#uniqueReferencingThing': '#category', + }), + + withPropertyFromObject({ + object: '#category', + property: input.value('excludeGroupsFromGalleryTabs'), + }), + + exposeDependencyOrContinue({ + dependency: '#category.excludeGroupsFromGalleryTabs', + }), + + exposeConstant({ + value: input.value(false), + }), + ], + divideAlbumsByStyle: flag(false), description: contentString(), @@ -234,6 +265,8 @@ export class GroupCategory extends Thing { name: name('Unnamed Group Category'), directory: directory(), + excludeGroupsFromGalleryTabs: flag(false), + color: color(), groups: referenceList({ @@ -266,7 +299,12 @@ export class GroupCategory extends Thing { static [Thing.yamlDocumentSpec] = { fields: { 'Category': {property: 'name'}, + 'Color': {property: 'color'}, + + 'Exclude Groups From Gallery Tabs': { + property: 'excludeGroupsFromGalleryTabs', + }, }, }; } |