« get me outta code hell

content, data: additional file chronology links - hsmusic-wiki - HSMusic - static wiki software cataloguing collaborative creation
about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
author(quasar) nebula <qznebula@protonmail.com>2026-05-23 11:05:18 -0300
committer(quasar) nebula <qznebula@protonmail.com>2026-05-23 11:05:18 -0300
commitb0ee6c87f95b65225e5e8c0119959833f599b3bb (patch)
tree51bea1cbc2e52963fc10ae019beb496545d3ee2d /src
parente44bf9442d564160209a0b38e388ef914b56fd3e (diff)
content, data: additional file chronology links
Diffstat (limited to 'src')
-rw-r--r--src/content/dependencies/generateAdditionalFilesListChunk.js8
-rw-r--r--src/content/dependencies/generateContributionTooltipChronologySection.js10
-rw-r--r--src/content/dependencies/linkAnythingMan.js2
-rw-r--r--src/data/things/additional-file/AdditionalFile.js14
-rw-r--r--src/strings-default.yaml3
5 files changed, 28 insertions, 9 deletions
diff --git a/src/content/dependencies/generateAdditionalFilesListChunk.js b/src/content/dependencies/generateAdditionalFilesListChunk.js
index 18d5b894..37f0e3ce 100644
--- a/src/content/dependencies/generateAdditionalFilesListChunk.js
+++ b/src/content/dependencies/generateAdditionalFilesListChunk.js
@@ -98,6 +98,14 @@ export default {
                   relations.artistCredit.setSlots({
                     normalStringKey:
                       entryCapsule + '.credit',
+
+                    showAnnotation: true,
+                    showExternalLinks: true,
+                    showChronology: true,
+
+                    chronologyKind:
+                      // Sorry, lol
+                      slots.string.replace(/s$/, ''),
                   });
 
                   if (!html.isBlank(relations.artistCredit)) {
diff --git a/src/content/dependencies/generateContributionTooltipChronologySection.js b/src/content/dependencies/generateContributionTooltipChronologySection.js
index 0cabc877..58bbddd0 100644
--- a/src/content/dependencies/generateContributionTooltipChronologySection.js
+++ b/src/content/dependencies/generateContributionTooltipChronologySection.js
@@ -3,7 +3,15 @@ function getName(thing) {
     return null;
   }
 
-  if (thing.isArtwork || thing.isMusicVideo) {
+  if (thing.isAdditionalFile) {
+    return thing.thing.name;
+  }
+
+  if (thing.isArtwork) {
+    return thing.thing.name;
+  }
+
+  if (thing.isMusicVideo) {
     return thing.thing.name;
   }
 
diff --git a/src/content/dependencies/linkAnythingMan.js b/src/content/dependencies/linkAnythingMan.js
index 6efa5fe1..d37c47e0 100644
--- a/src/content/dependencies/linkAnythingMan.js
+++ b/src/content/dependencies/linkAnythingMan.js
@@ -11,6 +11,8 @@ export default {
         ? relation('linkTrack', thing)
      : thing.isMusicVideo
         ? relation('linkAnythingMan', thing.thing)
+     : thing.isAdditionalFile
+        ? relation('linkAnythingMan', thing.thing)
         : null),
   }),
 
diff --git a/src/data/things/additional-file/AdditionalFile.js b/src/data/things/additional-file/AdditionalFile.js
index d137c741..7efc68d7 100644
--- a/src/data/things/additional-file/AdditionalFile.js
+++ b/src/data/things/additional-file/AdditionalFile.js
@@ -6,8 +6,9 @@ import Thing from '#thing';
 import {isString, validateArrayItems} from '#validators';
 import {parseContributors} from '#yaml';
 
-import {exposeConstant, exposeUpdateValueOrContinue}
+import {exposeConstant, exposeDependency, exposeUpdateValueOrContinue}
   from '#composite/control-flow';
+import {withPropertyFromObject} from '#composite/data';
 import {contributionList, contentString, simpleString, soupyFind, thing}
   from '#composite/wiki-properties';
 
@@ -46,13 +47,10 @@ export class AdditionalFile extends Thing {
 
     isAdditionalFile: exposeConstant(V(true)),
 
-    // The date property is generally expected by contributions.
-    // Additional files don't actually support dates, but provide a null
-    // value for convenience.
-    date: {
-      flags: {expose: true},
-      expose: {compute: () => null},
-    },
+    date: [
+      withPropertyFromObject('thing', V('date')),
+      exposeDependency('#thing.date'),
+    ],
   });
 
   static [Thing.yamlDocumentSpec] = {
diff --git a/src/strings-default.yaml b/src/strings-default.yaml
index 18f93187..2f50fe9b 100644
--- a/src/strings-default.yaml
+++ b/src/strings-default.yaml
@@ -836,9 +836,12 @@ misc:
         bannerArt: "banner art"
         coverArt: "cover art"
         flash: "flash"
+        midiProjectFile: "midi / project file"
+        miscellaneousAdditionalFile: "additional file"
         musicVideo: "music video"
         musicVideoContribution: "video contribution"
         release: "release"
+        sheetMusicFile: "sheet music file"
         track: "track"
         trackArt: "track art"
         trackContribution: "track contribution"