From d0db1ad50d459fd6a628fc173b9f020d6729cd4d Mon Sep 17 00:00:00 2001 From: jcass Date: Sun, 27 Nov 2016 08:44:48 +0200 Subject: [PATCH] Hide 'Show...' popup menu options if URI's are note available. Fixes #213. --- README.rst | 8 +++++++ mopidy_musicbox_webclient/static/js/gui.js | 26 +++++++++++++--------- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/README.rst b/README.rst index a46d8b6..169ea95 100644 --- a/README.rst +++ b/README.rst @@ -103,6 +103,14 @@ Project resources Changelog ========= +v2.4.0 (UNRELEASED) +------------------- + +**Fixes** + +- Only show 'Show Album' or 'Show Artist' options in popup menus if URI's for those resources are available. + (Fixes: `#213 `_). + v2.3.0 (2016-05-15) ------------------- diff --git a/mopidy_musicbox_webclient/static/js/gui.js b/mopidy_musicbox_webclient/static/js/gui.js index fea794c..753ed1a 100644 --- a/mopidy_musicbox_webclient/static/js/gui.js +++ b/mopidy_musicbox_webclient/static/js/gui.js @@ -160,7 +160,7 @@ function popupTracks (e, listuri, trackuri, tlid) { e = window.event } $('.popupTrackName').html(popupData[trackuri].name) - if (popupData[trackuri].album && popupData[trackuri].album.name) { + if (popupData[trackuri].album && popupData[trackuri].album.name && popupData[trackuri].album.uri) { $('.popupAlbumName').html(popupData[trackuri].album.name) $('.popupAlbumLi').show() } else { @@ -168,26 +168,30 @@ function popupTracks (e, listuri, trackuri, tlid) { } var child = '' + $('.popupArtistsLi').hide() + $('.popupArtistsDiv').hide() if (popupData[trackuri].artists) { - if (popupData[trackuri].artists.length === 1) { + if (popupData[trackuri].artists.length === 1 && popupData[trackuri].artists[0].uri) { child = 'Show Artist' $('.popupArtistName').html(popupData[trackuri].artists[0].name) $('.popupArtistHref').attr('onclick', 'library.showArtist("' + popupData[trackuri].artists[0].uri + '");') $('.popupArtistsDiv').hide() $('.popupArtistsLi').show() } else { + var isValidArtistURI = false for (var j = 0; j < popupData[trackuri].artists.length; j++) { - child += '
  • ' + popupData[trackuri].artists[j].name + '
  • ' + if (popupData[trackuri].artists[0].uri) { + isValidArtistURI = true + child += '
  • ' + popupData[trackuri].artists[j].name + '
  • ' + } + } + if (isValidArtistURI) { + $('.popupArtistsLv').html(child).show() + $('.popupArtistsDiv').show() + // this makes the viewport of the window resize somehow + $('.popupArtistsLv').listview('refresh') } - $('.popupArtistsLi').hide() - $('.popupArtistsLv').html(child).show() - $('.popupArtistsDiv').show() - // this makes the viewport of the window resize somehow - $('.popupArtistsLv').listview('refresh') } - } else { - $('.popupArtistsDiv').hide() - $('.popupArtistsLi').hide() } var hash = document.location.hash.split('?')