Merge pull request #231 from jcass77/fix/230_refresh

Ignore calls to locationHashChanged untill page has finished loading
This commit is contained in:
Nick Steel 2017-03-11 13:37:13 +00:00 committed by GitHub
commit 4482a568b4
6 changed files with 27 additions and 18 deletions

View File

@ -131,6 +131,7 @@ v2.4.0 (UNRELEASED)
(Fixes: `#73 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/73>`_, `#93 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/93>`_). (Fixes: `#73 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/73>`_, `#93 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/93>`_).
- Playlists will now list tracks even if they are no longer available in the library. (Fixes: `#226 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/226>`_). - Playlists will now list tracks even if they are no longer available in the library. (Fixes: `#226 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/226>`_).
- Fixed an issue on Safari where the first page to load would be too wide to fit on the screen. - Fixed an issue on Safari where the first page to load would be too wide to fit on the screen.
- Refreshing album or artist info pages no longer raises an exception. (Fixes: `#230 <https://github.com/pimusicbox/mopidy-musicbox-webclient/issues/230>`_).
v2.3.0 (2016-05-15) v2.3.0 (2016-05-15)
------------------- -------------------

View File

@ -140,10 +140,10 @@
<a href="#" onclick="return controls.playTracks(ADD_ALL_BOTTOM, mopidy);">Add All to Bottom of Queue</a> <a href="#" onclick="return controls.playTracks(ADD_ALL_BOTTOM, mopidy);">Add All to Bottom of Queue</a>
</li> </li>
<li class="popupAlbumLi"> <li class="popupAlbumLi">
<a href="#" onclick="showAlbumPopup('#popupTracks')">Show Album <span class="popupAlbumName"></span></a> <a href="#" onclick="showAlbumPopup('#popupTracks', mopidy)">Show Album <span class="popupAlbumName"></span></a>
</li> </li>
<li class="popupArtistsLi"> <li class="popupArtistsLi">
<a href="#" onclick="showArtist()" class="popupArtistHref">Show Artist <span class="popupArtistName"></span> <a href="#" onclick="library.showArtist(null, mopidy)" class="popupArtistHref">Show Artist <span class="popupArtistName"></span>
</a> </a>
</li> </li>
<div data-role="collapsible" data-icon="false" data-inset="false" class="popupArtistsDiv"> <div data-role="collapsible" data-icon="false" data-inset="false" class="popupArtistsDiv">
@ -170,10 +170,10 @@
<a href="#" onclick="return controls.removeTrack('', mopidy);">Remove from Queue</a> <a href="#" onclick="return controls.removeTrack('', mopidy);">Remove from Queue</a>
</li> </li>
<li class="popupAlbumLi"> <li class="popupAlbumLi">
<a href="#" onclick="showAlbumPopup('#popupQueue')">Show Album <span class="popupAlbumName"></span></a> <a href="#" onclick="showAlbumPopup('#popupQueue', mopidy)">Show Album <span class="popupAlbumName"></span></a>
</li> </li>
<li class="popupArtistsLi"> <li class="popupArtistsLi">
<a href="#" onclick="showArtist()" class="popupArtistHref">Show Artist <span class="popupArtistName"></span> <a href="#" onclick="library.showArtist(null, mopidy)" class="popupArtistHref">Show Artist <span class="popupArtistName"></span>
</a> </a>
</li> </li>
<div data-role="collapsible" data-icon="false" data-inset="false" class="popupArtistsDiv"> <div data-role="collapsible" data-icon="false" data-inset="false" class="popupArtistsDiv">

View File

@ -305,7 +305,7 @@ function renderSongLiDivider (previousTrack, track, nextTrack, target) {
if (!hasSameAlbum(previousTrack, track) && hasSameAlbum(track, nextTrack)) { if (!hasSameAlbum(previousTrack, track) && hasSameAlbum(track, nextTrack)) {
// Large divider with album cover. // Large divider with album cover.
html += html +=
'<li class="albumdivider"><a href="#" onclick="return library.showAlbum(\'' + track.album.uri + '\');">' + '<li class="albumdivider"><a href="#" onclick="return library.showAlbum(\'' + track.album.uri + '\', mopidy);">' +
'<img id="' + getjQueryID(target + '-cover', track.uri) + '" class="artistcover" width="30" height="30"/>' + '<img id="' + getjQueryID(target + '-cover', track.uri) + '" class="artistcover" width="30" height="30"/>' +
'<h1>' + track.album.name + '</h1><p>' + '<h1>' + track.album.name + '</h1><p>' +
renderSongLiTrackArtists(track) + '</p></a></li>' renderSongLiTrackArtists(track) + '</p></a></li>'

View File

@ -84,7 +84,7 @@ function setSongInfo (data) {
if (data.track.artists) { if (data.track.artists) {
for (var j = 0; j < data.track.artists.length; j++) { for (var j = 0; j < data.track.artists.length; j++) {
artistshtml += '<a href="#" onclick="return library.showArtist(\'' + data.track.artists[j].uri + '\');">' + data.track.artists[j].name + '</a>' artistshtml += '<a href="#" onclick="return library.showArtist(\'' + data.track.artists[j].uri + '\', mopidy);">' + data.track.artists[j].name + '</a>'
artiststext += data.track.artists[j].name artiststext += data.track.artists[j].name
if (j !== data.track.artists.length - 1) { if (j !== data.track.artists.length - 1) {
artistshtml += ', ' artistshtml += ', '
@ -94,7 +94,7 @@ function setSongInfo (data) {
arttmp = artistshtml arttmp = artistshtml
} }
if (data.track.album && data.track.album.name) { if (data.track.album && data.track.album.name) {
$('#modalalbum').html('<a href="#" onclick="return library.showAlbum(\'' + data.track.album.uri + '\');">' + data.track.album.name + '</a>') $('#modalalbum').html('<a href="#" onclick="return library.showAlbum(\'' + data.track.album.uri + '\', mopidy);">' + data.track.album.name + '</a>')
} else { } else {
$('#modalalbum').html('') $('#modalalbum').html('')
} }
@ -138,9 +138,9 @@ function popupTracks (e, listuri, trackuri, tlid) {
$('.popupArtistsDiv').hide() $('.popupArtistsDiv').hide()
if (popupData[trackuri].artists) { if (popupData[trackuri].artists) {
if (popupData[trackuri].artists.length === 1 && popupData[trackuri].artists[0].uri) { if (popupData[trackuri].artists.length === 1 && popupData[trackuri].artists[0].uri) {
child = '<a href="#" onclick="library.showArtist(\'' + popupData[trackuri].artists[0].uri + '\');">Show Artist</a>' child = '<a href="#" onclick="library.showArtist(\'' + popupData[trackuri].artists[0].uri + '\', mopidy);">Show Artist</a>'
$('.popupArtistName').html(popupData[trackuri].artists[0].name) $('.popupArtistName').html(popupData[trackuri].artists[0].name)
$('.popupArtistHref').attr('onclick', 'library.showArtist("' + popupData[trackuri].artists[0].uri + '");') $('.popupArtistHref').attr('onclick', 'library.showArtist(\'' + popupData[trackuri].artists[0].uri + '\', mopidy);')
$('.popupArtistsDiv').hide() $('.popupArtistsDiv').hide()
$('.popupArtistsLi').show() $('.popupArtistsLi').show()
} else { } else {
@ -148,7 +148,7 @@ function popupTracks (e, listuri, trackuri, tlid) {
for (var j = 0; j < popupData[trackuri].artists.length; j++) { for (var j = 0; j < popupData[trackuri].artists.length; j++) {
if (popupData[trackuri].artists[j].uri) { if (popupData[trackuri].artists[j].uri) {
isValidArtistURI = true isValidArtistURI = true
child += '<li><a href="#" onclick="library.showArtist(\'' + popupData[trackuri].artists[j].uri + '\');"><span class="popupArtistName">' + popupData[trackuri].artists[j].name + '</span></a></li>' child += '<li><a href="#" onclick="library.showArtist(\'' + popupData[trackuri].artists[j].uri + '\', mopidy);"><span class="popupArtistName">' + popupData[trackuri].artists[j].name + '</span></a></li>'
} }
} }
if (isValidArtistURI) { if (isValidArtistURI) {
@ -192,7 +192,7 @@ function popupTracks (e, listuri, trackuri, tlid) {
function showAlbumPopup (popupId) { function showAlbumPopup (popupId) {
uri = $(popupId).data('track') uri = $(popupId).data('track')
library.showAlbum(popupData[uri].album.uri) library.showAlbum(popupData[uri].album.uri, mopidy)
} }
/** ******************** /** ********************
@ -401,12 +401,20 @@ function locationHashChanged () {
break break
case 'artists': case 'artists':
if (uri !== '') { if (uri !== '') {
library.showArtist(uri) if (mopidy) {
library.showArtist(uri, mopidy)
} else {
showOffline(true) // Page refreshed - wait for mopidy object to be initialized.
}
} }
break break
case 'albums': case 'albums':
if (uri !== '') { if (uri !== '') {
library.showAlbum(uri) if (mopidy) {
library.showAlbum(uri, mopidy)
} else {
showOffline(true) // Page refreshed - wait for mopidy object to be initialized.
}
} }
break break
default: // Default footer default: // Default footer

View File

@ -131,7 +131,7 @@
// Artist results // Artist results
var child = '' var child = ''
var template = '<li><a href="#" onclick="return library.showArtist(this.id)" id={id}><i class="{class}"></i> <strong>{name}</strong></a></li>' var template = '<li><a href="#" onclick="return library.showArtist(\'this.id\', mopidy)" id={id}><i class="{class}"></i> <strong>{name}</strong></a></li>'
var tokens var tokens
for (i = 0; i < results.artists.length; i++) { for (i = 0; i < results.artists.length; i++) {
@ -155,7 +155,7 @@
// Album results // Album results
child = '' child = ''
template = '<li><a href="#" onclick="return library.showAlbum(this.id)" id="{albumId}">' template = '<li><a href="#" onclick="return library.showAlbum(\'this.id\', mopidy)" id="{albumId}">'
template += '<h5 data-role="heading"><i class="{class}"></i> {albumName}</h5>' template += '<h5 data-role="heading"><i class="{class}"></i> {albumName}</h5>'
template += '<p data-role="desc">{artistName}</p>' template += '<p data-role="desc">{artistName}</p>'
template += '</a></li>' template += '</a></li>'
@ -269,7 +269,7 @@
return false return false
}, },
showArtist: function (nwuri) { showArtist: function (nwuri, mopidy) {
$('#popupQueue').popup('close') $('#popupQueue').popup('close')
$('#popupTracks').popup('close') $('#popupTracks').popup('close')
$('#controlsmodal').popup('close') $('#controlsmodal').popup('close')
@ -288,7 +288,7 @@
return false return false
}, },
showAlbum: function (uri) { showAlbum: function (uri, mopidy) {
$('#popupQueue').popup('close') $('#popupQueue').popup('close')
$('#popupTracks').popup('close') $('#popupTracks').popup('close')
$('#controlsmodal').popup('close') $('#controlsmodal').popup('close')

View File

@ -1,6 +1,6 @@
CACHE MANIFEST CACHE MANIFEST
# 2017-02-24:v1 # 2017-02-26:v1
NETWORK: NETWORK:
* *