From 52aaed662e3fc31dbd83861db83058aae604d206 Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Thu, 11 Sep 2025 05:45:28 -0300 Subject: data: TrackSection.countTracksInArtistTotals --- src/data/things/album.js | 29 +++++++++++++++++++++++++++-- src/data/things/track.js | 7 +++++-- 2 files changed, 32 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/data/things/album.js b/src/data/things/album.js index 46dc84c6..777df882 100644 --- a/src/data/things/album.js +++ b/src/data/things/album.js @@ -10,8 +10,16 @@ import {traverse} from '#node-utils'; import {sortAlbumsTracksChronologically, sortChronologically} from '#sort'; import {empty} from '#sugar'; import Thing from '#thing'; -import {is, isColor, isContributionList, isDate, isDirectory, isNumber} - from '#validators'; + +import { + is, + isBoolean, + isColor, + isContributionList, + isDate, + isDirectory, + isNumber, +} from '#validators'; import { parseAdditionalFiles, @@ -1051,6 +1059,21 @@ export class TrackSection extends Thing { dateOriginallyReleased: simpleDate(), + countTracksInArtistTotals: [ + exposeUpdateValueOrContinue({ + validate: input.value(isBoolean), + }), + + withAlbum(), + + withPropertyFromObject({ + object: '#album', + property: input.value('countTracksInArtistTotals'), + }), + + exposeDependency({dependency: '#album.countTracksInArtistTotals'}), + ], + isDefaultTrackSection: flag(false), description: contentString(), @@ -1145,6 +1168,8 @@ export class TrackSection extends Thing { transform: parseDate, }, + 'Count Tracks In Artist Totals': {property: 'countTracksInArtistTotals'}, + 'Description': {property: 'description'}, }, }; diff --git a/src/data/things/track.js b/src/data/things/track.js index b2336a44..9b4a2f18 100644 --- a/src/data/things/track.js +++ b/src/data/things/track.js @@ -232,11 +232,14 @@ export class Track extends Thing { validate: input.value(isBoolean), }), - withPropertyFromAlbum({ + withContainingTrackSection(), + + withPropertyFromObject({ + object: '#trackSection', property: input.value('countTracksInArtistTotals'), }), - exposeDependency({dependency: '#album.countTracksInArtistTotals'}), + exposeDependency({dependency: '#trackSection.countTracksInArtistTotals'}), ], disableUniqueCoverArt: flag(), -- cgit 1.3.0-6-gf8a5