diff options
author | (quasar) nebula <qznebula@protonmail.com> | 2025-04-06 18:15:15 -0300 |
---|---|---|
committer | (quasar) nebula <qznebula@protonmail.com> | 2025-04-10 16:02:42 -0300 |
commit | c72196f5feae56ff734b00189908ad362a13ea47 (patch) | |
tree | 23e53bb20e86b35688c8f691f9c2cda19651c352 /src/data | |
parent | eeec9368eee8428b019168b29dba548a35d3eaca (diff) |
data: Artwork.referencedByArtworks
Also drop this property from Track, Album
Diffstat (limited to 'src/data')
-rw-r--r-- | src/data/things/album.js | 11 | ||||
-rw-r--r-- | src/data/things/artwork.js | 30 | ||||
-rw-r--r-- | src/data/things/track.js | 10 |
3 files changed, 28 insertions, 23 deletions
diff --git a/src/data/things/album.js b/src/data/things/album.js index 32905624..1a1235e6 100644 --- a/src/data/things/album.js +++ b/src/data/things/album.js @@ -278,17 +278,6 @@ export class Album extends Thing { withTracks(), exposeDependency({dependency: '#tracks'}), ], - - referencedByArtworks: [ - exitWithoutContribs({ - contribs: 'coverArtistContribs', - value: input.value([]), - }), - - reverseReferenceList({ - reverse: soupyReverse.input('artworksWhichReference'), - }), - ], }); static [Thing.getSerializeDescriptors] = ({ diff --git a/src/data/things/artwork.js b/src/data/things/artwork.js index 9e4a1d7c..fabbf625 100644 --- a/src/data/things/artwork.js +++ b/src/data/things/artwork.js @@ -18,8 +18,6 @@ import { } from '#validators'; import {withPropertyFromObject} from '#composite/data'; -import {contentString, directory, simpleString, soupyFind, thing, wikiData} - from '#composite/wiki-properties'; import { exitWithoutDependency, @@ -36,6 +34,17 @@ import { withResolvedReferenceList, } from '#composite/wiki-data'; +import { + contentString, + directory, + reverseReferenceList, + simpleString, + soupyFind, + soupyReverse, + thing, + wikiData, +} from '#composite/wiki-properties'; + import {withDate} from '#composite/things/artwork'; export class Artwork extends Thing { @@ -222,11 +231,18 @@ export class Artwork extends Thing { // Update only find: soupyFind(), + reverse: soupyReverse(), // used for referencedArtworks (mixedFind) artworkData: wikiData({ class: input.value(Artwork), }), + + // Expose only + + referencedByArtworks: reverseReferenceList({ + reverse: soupyReverse.input('artworksWhichReference'), + }), }); static [Thing.yamlDocumentSpec] = { @@ -256,6 +272,16 @@ export class Artwork extends Thing { }, }; + static [Thing.reverseSpecs] = { + artworksWhichReference: { + bindTo: 'artworkData', + + referencing: artwork => [artwork], + referenced: artwork => + artwork.referencedArtworks.map(ref => ref.artwork), + }, + }; + get path() { if (!this.thing) return null; if (!this.thing.getOwnArtworkPath) return null; diff --git a/src/data/things/track.js b/src/data/things/track.js index 4679d78b..c2ba503b 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -420,16 +420,6 @@ export class Track extends Thing { featuredInFlashes: reverseReferenceList({ reverse: soupyReverse.input('flashesWhichFeature'), }), - - referencedByArtworks: [ - exitWithoutUniqueCoverArt({ - value: input.value([]), - }), - - reverseReferenceList({ - reverse: soupyReverse.input('artworksWhichReference'), - }), - ], }); static [Thing.yamlDocumentSpec] = { |