« 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
diff options
context:
space:
mode:
Diffstat (limited to 'src/data')
-rw-r--r--src/data/things.js11
-rw-r--r--src/data/yaml.js3
2 files changed, 13 insertions, 1 deletions
diff --git a/src/data/things.js b/src/data/things.js
index 8f460e4..18efac4 100644
--- a/src/data/things.js
+++ b/src/data/things.js
@@ -1388,13 +1388,22 @@ WikiInfo.propertyDescriptors = {
         update: {validate: isURL}
     },
 
-    // Feature toggles
+    divideTrackListsByGroupsByRef: Thing.common.referenceList(Group),
 
+    // Feature toggles
     enableFlashesAndGames: Thing.common.flag(false),
     enableListings: Thing.common.flag(false),
     enableNews: Thing.common.flag(false),
     enableArtTagUI: Thing.common.flag(false),
     enableGroupUI: Thing.common.flag(false),
+
+    // Update only
+
+    groupData: Thing.common.wikiData(Group),
+
+    // Expose only
+
+    divideTrackListsByGroups: Thing.common.dynamicThingsFromReferenceList('divideTrackListsByGroupsByRef', 'groupData', find.group),
 };
 
 // -> Language
diff --git a/src/data/yaml.js b/src/data/yaml.js
index 072aca6..fa96756 100644
--- a/src/data/yaml.js
+++ b/src/data/yaml.js
@@ -402,6 +402,7 @@ export const processWikiInfoDocument = makeProcessDocument(WikiInfo, {
         footerContent: 'Footer Content',
         defaultLanguage: 'Default Language',
         canonicalBase: 'Canonical Base',
+        divideTrackListsByGroupsByRef: 'Divide Track Lists By Groups',
         enableFlashesAndGames: 'Enable Flashes & Games',
         enableListings: 'Enable Listings',
         enableNews: 'Enable News',
@@ -1090,6 +1091,8 @@ export function linkWikiDataArrays(wikiData) {
 
     const WD = wikiData;
 
+    assignWikiData([WD.wikiInfo], 'groupData');
+
     assignWikiData(WD.albumData, 'artistData', 'artTagData', 'groupData', 'trackData');
     WD.albumData.forEach(album => assignWikiData(album.trackGroups, 'trackData'));