diff --git a/MaterialSkin/HTML/material/html/js/browse-page.js b/MaterialSkin/HTML/material/html/js/browse-page.js index 99fe21185..dfdd27c93 100644 --- a/MaterialSkin/HTML/material/html/js/browse-page.js +++ b/MaterialSkin/HTML/material/html/js/browse-page.js @@ -645,7 +645,7 @@ var lmsBrowse = Vue.component("lms-browse", { if (stdItem==STD_ITEM_WORK) { return undefined!=this.current.composer ? this.current.composer : this.current.subtitle; } - if (stdItem==STD_ITEM_ALBUM || stdItem==STD_ITEM_ALL_TRACKS || stdItem==STD_ITEM_COMPOSITION_TRACKS || stdItem==STD_ITEM_MIX || stdItem==STD_ITEM_CLASSICAL_WORKS) { + if (stdItem==STD_ITEM_ALBUM || stdItem==STD_ITEM_ALL_TRACKS || stdItem==STD_ITEM_COMPOSITION_TRACKS || stdItem==STD_ITEM_MIX || stdItem==STD_ITEM_CLASSICAL_WORKS || stdItem==STD_ITEM_ONLINE_ALBUM) { let albumArtst = this.current.subIsYear ? undefined : this.current.subtitle; if (lmsOptions.noArtistFilter && this.current.compilation && this.items.length>0 && undefined!=this.items[0].compilationAlbumArtist) { albumArtst = this.items[0].compilationAlbumArtist; @@ -669,7 +669,7 @@ var lmsBrowse = Vue.component("lms-browse", { return false; } let stdItem = this.current.stdItem ? this.current.stdItem : this.current.altStdItem; - if (stdItem==STD_ITEM_ARTIST || stdItem==STD_ITEM_WORK_COMPOSER || stdItem==STD_ITEM_WORK || stdItem==STD_ITEM_CLASSICAL_WORKS) { + if (stdItem==STD_ITEM_ARTIST || stdItem==STD_ITEM_WORK_COMPOSER || stdItem==STD_ITEM_WORK || stdItem==STD_ITEM_CLASSICAL_WORKS || stdItem==STD_ITEM_ONLINE_ALBUM) { return this.headerSubTitle } if (stdItem==STD_ITEM_ALBUM || stdItem==STD_ITEM_MIX || stdItem==STD_ITEM_ALL_TRACKS || stdItem==STD_ITEM_COMPOSITION_TRACKS) { diff --git a/MaterialSkin/HTML/material/html/js/browse-resp.js b/MaterialSkin/HTML/material/html/js/browse-resp.js index f57847478..f4c03bd43 100644 --- a/MaterialSkin/HTML/material/html/js/browse-resp.js +++ b/MaterialSkin/HTML/material/html/js/browse-resp.js @@ -142,6 +142,7 @@ function parseBrowseResp(data, parent, options, cacheKey, parentCommand, parentG var maybeAllowGrid = command!="trackstat"; // && !isFavorites; // && command!="playhistory"; var numImages = 0; var numTracks = 0; + var totalDuration = 0; // support for total duration if duration has been passed as a parameter resp.isMusicMix = MIXER_APPS.has(command) && data.params[1].length>0 && (data.params[1][1]=="mix" || data.params[1][1]=="list"); resp.canUseGrid = maybeAllowGrid && (isRadiosTop || isAppsTop || isBmf || isDisksAndFolders || (data.result.window && data.result.window.windowStyle && (data.result.window.windowStyle=="icon_list" || data.result.window.windowStyle=="home_menu"))) ? true : false; @@ -693,7 +694,12 @@ function parseBrowseResp(data, parent, options, cacheKey, parentCommand, parentG i.icon = undefined; haveWithoutIcons = true; } - + + // show duration if duration has been passed as a parameter + i.duration = parseFloat(i.duration || 0); + i.durationStr = i.duration>0 ? formatSeconds(i.duration) : undefined, + totalDuration += i.duration>0 ? i.duration : 0; + resp.items.push(i); // If this is a "text" item with an image then treat as a standard actionable item if ("text"==i.type && (undefined!=i.image || undefined!=i.icon || undefined!=i.svg)) { @@ -929,6 +935,11 @@ function parseBrowseResp(data, parent, options, cacheKey, parentCommand, parentG } } } + + // show total duration if duration has been passed as a parameter + if (totalDuration>0) { + resp.subtitle+=SEPARATOR+formatSeconds(totalDuration); + } } else if (data.result.artists_loop) { var type = 0; var stdItem = parent && parent.id.startsWith("mmw") ? STD_ITEM_WORK_COMPOSER : STD_ITEM_ARTIST;