From bb296e0b91cb3037d27a742d8939dd2bde6f1833 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Tue, 3 Mar 2026 08:16:43 -0400 Subject: content: generateArtTagGalleryPage: combine featuring/showing lines --- .../dependencies/generateArtTagGalleryPage.js | 59 ++++++++++++---------- .../generateArtTagGalleryPageFeaturedLine.js | 12 ++--- .../generateArtTagGalleryPageShowingLine.js | 8 +-- 3 files changed, 42 insertions(+), 37 deletions(-) (limited to 'src/content') diff --git a/src/content/dependencies/generateArtTagGalleryPage.js b/src/content/dependencies/generateArtTagGalleryPage.js index 3e036b08..646975ef 100644 --- a/src/content/dependencies/generateArtTagGalleryPage.js +++ b/src/content/dependencies/generateArtTagGalleryPage.js @@ -130,34 +130,52 @@ export default { extraReadingLinks: relations.extraReadingLinks ?? null, }), - data.numArtworksTotal === 0 && - html.tag('p', {class: 'quick-info'}, + html.tag('p', {class: 'quick-info'}, [ + data.numArtworksTotal === 0 && language.encapsulate(pageCapsule, 'featuredLine.notFeatured', capsule => [ language.$(capsule), html.tag('br'), language.$(capsule, 'callToAction'), - ])), + ]), - data.numArtworksTotal >= 1 && - relations.featuredLine.clone() - .slots({ - showing: 'all', + data.numArtworksTotal >= 1 && + relations.featuredLine.clone().slots({ + string: + (data.hasMixedDirectIndirect + ? 'altogether' + : 'simple'), + + filter: 'all', count: data.numArtworksTotal, }), - data.hasMixedDirectIndirect && [ - relations.featuredLine.clone() - .slots({ - showing: 'direct', + data.hasMixedDirectIndirect && [ + relations.featuredLine.clone().slots({ + string: 'direct', + filter: 'direct', count: data.numArtworksDirectly, }), - relations.featuredLine.clone() - .slots({ - showing: 'indirect', + relations.featuredLine.clone().slots({ + string: 'indirect', + filter: 'indirect', count: data.numArtworksIndirectly, }), - ], + ], + + data.hasMixedDirectIndirect && [ + html.tag('br'), + + relations.showingLine.clone() + .slot('filter', 'all'), + + relations.showingLine.clone() + .slot('filter', 'direct'), + + relations.showingLine.clone() + .slot('filter', 'indirect'), + ], + ]), relations.ancestorLinks && html.tag('p', {id: 'descends-from-line'}, @@ -173,17 +191,6 @@ export default { tags: language.formatUnitList(relations.descendantLinks), })), - data.hasMixedDirectIndirect && [ - relations.showingLine.clone() - .slot('showing', 'all'), - - relations.showingLine.clone() - .slot('showing', 'direct'), - - relations.showingLine.clone() - .slot('showing', 'indirect'), - ], - relations.coverGrid .slots({ links: relations.links, diff --git a/src/content/dependencies/generateArtTagGalleryPageFeaturedLine.js b/src/content/dependencies/generateArtTagGalleryPageFeaturedLine.js index 8593cc21..8a6d13c6 100644 --- a/src/content/dependencies/generateArtTagGalleryPageFeaturedLine.js +++ b/src/content/dependencies/generateArtTagGalleryPageFeaturedLine.js @@ -1,18 +1,16 @@ export default { slots: { - showing: { - validate: v => v.is('all', 'direct', 'indirect'), - }, - + string: {validate: v => v.is('simple', 'altogether', 'direct', 'indirect')}, + filter: {validate: v => v.is('all', 'direct', 'indirect')}, count: {type: 'number'}, }, generate: (slots, {html, language}) => language.encapsulate('artTagGalleryPage', pageCapsule => - html.tag('p', {class: 'quick-info'}, - {id: `featured-${slots.showing}-line`}, + html.tag('span', + {id: `featured-${slots.filter}-line`}, - language.$(pageCapsule, 'featuredLine', slots.showing, { + language.$(pageCapsule, 'featuredLine', slots.string, { coverArts: language.countArtworks(slots.count, { unit: true, diff --git a/src/content/dependencies/generateArtTagGalleryPageShowingLine.js b/src/content/dependencies/generateArtTagGalleryPageShowingLine.js index 2a34ae57..18734ab8 100644 --- a/src/content/dependencies/generateArtTagGalleryPageShowingLine.js +++ b/src/content/dependencies/generateArtTagGalleryPageShowingLine.js @@ -1,6 +1,6 @@ export default { slots: { - showing: { + filter: { validate: v => v.is('all', 'direct', 'indirect'), }, @@ -9,12 +9,12 @@ export default { generate: (slots, {html, language}) => language.encapsulate('artTagGalleryPage', pageCapsule => - html.tag('p', {class: 'quick-info'}, - {id: `showing-${slots.showing}-line`}, + html.tag('span', + {id: `showing-${slots.filter}-line`}, language.$(pageCapsule, 'showingLine', { showing: html.tag('a', {href: '#'}, - language.$(pageCapsule, 'showingLine', slots.showing)), + language.$(pageCapsule, 'showingLine', slots.filter)), }))), }; -- cgit 1.3.0-6-gf8a5