From d20cbfbb437816418a7cdcd77248f6c7a15d535c Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 22 Apr 2025 17:04:54 -0300 Subject: content: gCAOriginDetails: hide same artists with attachAbove ...and move the custom label into the source line instead, in that case. --- .../generateCoverArtworkOriginDetails.js | 113 +++++++++++++-------- 1 file changed, 69 insertions(+), 44 deletions(-) (limited to 'src/content/dependencies') diff --git a/src/content/dependencies/generateCoverArtworkOriginDetails.js b/src/content/dependencies/generateCoverArtworkOriginDetails.js index 08a01cfe..3366a22e 100644 --- a/src/content/dependencies/generateCoverArtworkOriginDetails.js +++ b/src/content/dependencies/generateCoverArtworkOriginDetails.js @@ -13,11 +13,18 @@ export default { query: (artwork) => ({ artworkThingType: artwork.thing.constructor[Thing.referenceType], + + mainArtworkArtistContribs: + (!artwork.isMainArtwork && artwork.mainArtwork + ? artwork.mainArtwork.artistContribs + : null) }), relations: (relation, query, artwork) => ({ credit: - relation('generateArtistCredit', artwork.artistContribs, []), + relation('generateArtistCredit', + artwork.artistContribs, + query.mainArtworkArtistContribs ?? []), source: relation('transformContent', artwork.source), @@ -50,49 +57,67 @@ export default { {class: 'origin-details'}, - [ - language.encapsulate(capsule, 'artworkBy', workingCapsule => { - const workingOptions = {}; - - if (data.label) { - workingCapsule += '.customLabel'; - workingOptions.label = data.label; - } - - if (relations.datetimestamp) { - workingCapsule += '.withYear'; - workingOptions.year = - relations.datetimestamp.slots({ - style: 'year', - tooltip: true, - }); - } - - return relations.credit.slots({ - showAnnotation: true, - showExternalLinks: true, - showChronology: true, - showWikiEdits: true, - - trimAnnotation: false, - - chronologyKind: 'coverArt', + (() => { + const artworkBy = + language.encapsulate(capsule, 'artworkBy', workingCapsule => { + const workingOptions = {}; + + if (data.label) { + workingCapsule += '.customLabel'; + workingOptions.label = data.label; + } + + if (relations.datetimestamp) { + workingCapsule += '.withYear'; + workingOptions.year = + relations.datetimestamp.slots({ + style: 'year', + tooltip: true, + }); + } + + return relations.credit.slots({ + showAnnotation: true, + showExternalLinks: true, + showChronology: true, + showWikiEdits: true, + + trimAnnotation: false, + + chronologyKind: 'coverArt', + + normalStringKey: workingCapsule, + additionalStringOptions: workingOptions, + }); + }); - normalStringKey: workingCapsule, - additionalStringOptions: workingOptions, + const trackArtFromAlbum = + pagePath[0] === 'track' && + data.artworkThingType === 'album' && + language.$(capsule, 'trackArtFromAlbum', { + album: + relations.albumLink.slot('color', false), + }); + + const source = + language.encapsulate(capsule, 'source', workingCapsule => { + const workingOptions = { + [language.onlyIfOptions]: ['source'], + source: relations.source.slot('mode', 'inline'), + }; + + if (html.isBlank(artworkBy) && data.label) { + workingCapsule += '.customLabel'; + workingOptions.label = data.label; + } + + return language.$(workingCapsule, workingOptions); }); - }), - - pagePath[0] === 'track' && - data.artworkThingType === 'album' && - language.$(capsule, 'trackArtFromAlbum', { - album: - relations.albumLink.slot('color', false), - }), - - language.$(capsule, 'source', { - [language.onlyIfOptions]: ['source'], - source: relations.source.slot('mode', 'inline'), - }), - ])), + + return [ + artworkBy, + trackArtFromAlbum, + source, + ]; + })())), }; -- cgit 1.3.0-6-gf8a5