diff --git a/src/main/base/browserwindow.ts b/src/main/base/browserwindow.ts
index 8407702d..30607ae0 100644
--- a/src/main/base/browserwindow.ts
+++ b/src/main/base/browserwindow.ts
@@ -64,6 +64,7 @@ export class BrowserWindow {
"pages/cider-playlist",
"pages/playlist-inline",
"pages/recordLabel",
+ "pages/cider-multiroom",
"pages/collection-list",
"pages/apple-curator",
"pages/artist",
@@ -173,6 +174,10 @@ export class BrowserWindow {
page: "recordLabel_",
component: ``,
condition: `page.includes('recordLabel_')`
+ }, {
+ page: "multiroom",
+ component: ``,
+ condition: `page.includes('multiroom')`
}, {
page: "curator_",
component: ``,
diff --git a/src/renderer/less/pages.less b/src/renderer/less/pages.less
index b0ee7c36..1ccaa34d 100644
--- a/src/renderer/less/pages.less
+++ b/src/renderer/less/pages.less
@@ -1637,4 +1637,29 @@
background: transparent;
border : 0px;
}
+}
+
+.content-inner.cider-multiroom{
+ padding: 0px;
+ .detail{
+ padding: 32px;
+ }
+ .header-desc{
+ font-size: 1em;
+ font-weight: 400;
+ }
+ .artworkContainer{
+ height: 300px;
+ width : 100%;
+ img{
+ height: 100%;
+ width: 100%;
+ overflow: hidden;
+ object-fit: cover;
+ filter: unset;
+ &:last-child{
+ transform: unset;
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/src/renderer/main/vueapp.js b/src/renderer/main/vueapp.js
index db9954e9..52ccdcdb 100644
--- a/src/renderer/main/vueapp.js
+++ b/src/renderer/main/vueapp.js
@@ -53,6 +53,7 @@ const app = new Vue({
},
showingPlaylist: [],
appleCurator: [],
+ multiroom: [],
artistPage: {
data: {},
},
@@ -1699,7 +1700,21 @@ const app = new Vue({
if (item.relationships?.contents?.data != null && item.relationships?.contents?.data.length > 0) {
this.routeView(item.relationships.contents.data[0])
} else if (item.attributes?.link?.url != null) {
- window.open(item.attributes.link.url)
+ if (item.attributes.link.url.includes("viewMultiRoom")) {
+
+ id = item.attributes.link.url.substring(item.attributes.link.url.lastIndexOf("=") + 1)
+ app.getTypeFromID("multiroom", id, false, {
+ platform: "web",
+ extend: "editorialArtwork,uber,lockupStyle"
+ }).then(()=> {
+ kind = "multiroom"
+ window.location.hash = `${kind}/${id}`
+ document.querySelector("#app-content").scrollTop = 0
+ })
+
+ return;
+ } else {
+ window.open(item.attributes.link.url)}
}
} else if (kind.toString().includes("artist")) {
@@ -1944,6 +1959,8 @@ const app = new Vue({
} finally {
if (kind == "appleCurator") {
app.appleCurator = a.data.data[0]
+ } else if (kind == "multiroom"){
+ app.multiroom = a.data.data[0]
} else {
this.getPlaylistContinuous(a, true)
}
@@ -1951,6 +1968,8 @@ const app = new Vue({
} finally {
if (kind == "appleCurator") {
app.appleCurator = a.data.data[0]
+ } else if (kind == "multiroom"){
+ app.multiroom = a.data.data[0]
} else {
this.getPlaylistContinuous(a, true)
}
@@ -2184,7 +2203,10 @@ const app = new Vue({
}
let truemethod = (!method.endsWith("s")) ? (method + "s") : method;
try {
- if (library) {
+ if (method.includes(`multiroom`)) {
+ return await this.mk.api.v3.music(`v1/editorial/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2)
+ }
+ else if (library) {
return await this.mk.api.v3.music(`v1/me/library/${truemethod}/${term.toString()}`, params, params2)
} else {
return await this.mk.api.v3.music(`/v1/catalog/${app.mk.storefrontId}/${truemethod}/${term.toString()}`, params, params2)
diff --git a/src/renderer/views/pages/apple-curator.ejs b/src/renderer/views/pages/apple-curator.ejs
index 329aaa3d..2e13a7de 100644
--- a/src/renderer/views/pages/apple-curator.ejs
+++ b/src/renderer/views/pages/apple-curator.ejs
@@ -37,6 +37,6 @@
return {
app: this.$root
}
- },
+ }
})
\ No newline at end of file
diff --git a/src/renderer/views/pages/cider-multiroom.ejs b/src/renderer/views/pages/cider-multiroom.ejs
new file mode 100644
index 00000000..4c8b306b
--- /dev/null
+++ b/src/renderer/views/pages/cider-multiroom.ejs
@@ -0,0 +1,48 @@
+
+
+
\ No newline at end of file
diff --git a/src/renderer/views/pages/recordLabel.ejs b/src/renderer/views/pages/recordLabel.ejs
index 918d3f48..014440ea 100644
--- a/src/renderer/views/pages/recordLabel.ejs
+++ b/src/renderer/views/pages/recordLabel.ejs
@@ -78,7 +78,7 @@
},
methods: {
getArtistPalette(artist) {
- if (artist["attributes"]["artwork"]) {
+ if (artist?.attributes?.artwork != null) {
return {
"background": "#" + artist["attributes"]["artwork"]["bgColor"],
"color": "#" + artist["attributes"]["artwork"]["textColor1"],