« get me outta code hell

hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/content/dependencies/generateDividedTrackList.js3
-rw-r--r--src/data/things/group/Group.js30
-rw-r--r--src/data/things/group/GroupCategory.js5
3 files changed, 29 insertions, 9 deletions
diff --git a/src/content/dependencies/generateDividedTrackList.js b/src/content/dependencies/generateDividedTrackList.js
index 584eb920..e89f08db 100644
--- a/src/content/dependencies/generateDividedTrackList.js
+++ b/src/content/dependencies/generateDividedTrackList.js
@@ -12,7 +12,8 @@ export default {
 
     const contextDividingGroups =
       contextTrack.groups
-        .filter(group => !wikiDividingGroups.includes(group));
+        .filter(group => !wikiDividingGroups.includes(group))
+        .filter(group => group.useForDividingReferenceLists);
 
     const contextGroupRuns =
       Array.from(runs(contextDividingGroups));
diff --git a/src/data/things/group/Group.js b/src/data/things/group/Group.js
index 6f698682..f8dd413e 100644
--- a/src/data/things/group/Group.js
+++ b/src/data/things/group/Group.js
@@ -35,18 +35,23 @@ export class Group extends Thing {
     name: name(V('Unnamed Group')),
     directory: directory(),
 
-    excludeFromGalleryTabs: [
+    useForDividingReferenceLists: [
       exposeUpdateValueOrContinue({
         validate: input.value(isBoolean),
       }),
 
-      withUniqueReferencingThing({
-        reverse: soupyReverse.input('groupCategoriesWhichInclude'),
-      }).outputs({
-        '#uniqueReferencingThing': '#category',
+      withPropertyFromObject('category', V('useGroupsForDividingReferenceLists')),
+      exposeDependencyOrContinue('#category.useGroupsForDividingReferenceLists'),
+
+      exposeConstant(V(false)),
+    ],
+
+    excludeFromGalleryTabs: [
+      exposeUpdateValueOrContinue({
+        validate: input.value(isBoolean),
       }),
 
-      withPropertyFromObject('#category', V('excludeGroupsFromGalleryTabs')),
+      withPropertyFromObject('category', V('excludeGroupsFromGalleryTabs')),
       exposeDependencyOrContinue('#category.excludeGroupsFromGalleryTabs'),
 
       exposeConstant(V(false)),
@@ -158,8 +163,17 @@ export class Group extends Thing {
       'Group': {property: 'name'},
       'Directory': {property: 'directory'},
 
-      'Exclude From Gallery Tabs': {property: 'excludeFromGalleryTabs'},
-      'Divide Albums By Style': {property: 'divideAlbumsByStyle'},
+      'Use For Dividing Reference Lists': {
+        property: 'useForDividingReferenceLists',
+      },
+
+      'Exclude From Gallery Tabs': {
+        property: 'excludeFromGalleryTabs',
+      },
+
+      'Divide Albums By Style': {
+        property: 'divideAlbumsByStyle',
+      },
 
       'Description': {property: 'description'},
       'URLs': {property: 'urls'},
diff --git a/src/data/things/group/GroupCategory.js b/src/data/things/group/GroupCategory.js
index daf31868..efefb1c9 100644
--- a/src/data/things/group/GroupCategory.js
+++ b/src/data/things/group/GroupCategory.js
@@ -17,6 +17,7 @@ export class GroupCategory extends Thing {
     name: name(V('Unnamed Group Category')),
     directory: directory(),
 
+    useGroupsForDividingReferenceLists: flag(V(false)),
     excludeGroupsFromGalleryTabs: flag(V(false)),
 
     color: color(),
@@ -50,6 +51,10 @@ export class GroupCategory extends Thing {
 
       'Color': {property: 'color'},
 
+      'Use Groups For Dividing Reference Lists': {
+        property: 'useGroupsForDividingReferenceLists',
+      },
+
       'Exclude Groups From Gallery Tabs': {
         property: 'excludeGroupsFromGalleryTabs',
       },