From 960abb77a793c087b3b729090bca2aab53b50c1f Mon Sep 17 00:00:00 2001 From: vapormusic Date: Mon, 4 Apr 2022 22:04:27 +0700 Subject: [PATCH] split albums on discNumber --- src/renderer/views/pages/cider-playlist.ejs | 41 +++++++++++++++++--- src/renderer/views/pages/playlist-inline.ejs | 31 +++++++++++++++ 2 files changed, 67 insertions(+), 5 deletions(-) diff --git a/src/renderer/views/pages/cider-playlist.ejs b/src/renderer/views/pages/cider-playlist.ejs index 034a302e..e71788b1 100644 --- a/src/renderer/views/pages/cider-playlist.ejs +++ b/src/renderer/views/pages/cider-playlist.ejs @@ -147,11 +147,24 @@
- + +
@@ -224,6 +237,7 @@ badgesRequested: false, headerVisible: true, useArtistChip: false, + nestedPlaylist: [], } }, mounted: function () { @@ -233,11 +247,28 @@ }, watch: { data: function () { + this.nestedPlaylist = []; this.isInLibrary() this.getBadges() + this.generateNestedPlaylist() } }, methods: { + generateNestedPlaylist(){ + this.nestedPlaylist = []; + if (this.data?.type?.includes("album")){ + console.log(this.data.relationships.tracks.data) + let songlists = this.data.relationships.tracks.data; + let discs = songlists.map(x => {return x.attributes.discNumber}).filter((item, i, ar) => ar.indexOf(item) === i); + if (discs && discs.length > 1){ + for (disc of discs){ + let songs = songlists.filter(x => x.attributes.discNumber == disc); + this.nestedPlaylist.push({disc: disc, tracks: songs}) + } + } + console.log(this.nestedPlaylist) + + }}, isHeaderVisible(visible) { this.headerVisible = visible }, diff --git a/src/renderer/views/pages/playlist-inline.ejs b/src/renderer/views/pages/playlist-inline.ejs index e416946b..0e354940 100644 --- a/src/renderer/views/pages/playlist-inline.ejs +++ b/src/renderer/views/pages/playlist-inline.ejs @@ -157,11 +157,24 @@ + + @@ -248,6 +261,7 @@ badgesRequested: false, headerVisible: true, useArtistChip: false, + nestedPlaylist: [], } }, mounted: function () { @@ -257,11 +271,28 @@ }, watch: { data: function () { + this.nestedPlaylist = []; this.isInLibrary() this.getBadges() + this.generateNestedPlaylist() } }, methods: { + generateNestedPlaylist(){ + this.nestedPlaylist = []; + if (this.data?.type?.includes("album")){ + console.log(this.data.relationships.tracks.data) + let songlists = this.data.relationships.tracks.data; + let discs = songlists.map(x => {return x.attributes.discNumber}).filter((item, i, ar) => ar.indexOf(item) === i); + if (discs && discs.length > 1){ + for (disc of discs){ + let songs = songlists.filter(x => x.attributes.discNumber == disc); + this.nestedPlaylist.push({disc: disc, tracks: songs}) + } + } + console.log(this.nestedPlaylist) + + }}, isHeaderVisible(visible) { this.headerVisible = visible },