Gracefully handle a disabled m3u extension.
This commit is contained in:
parent
8075bc3a0e
commit
97c8817335
28
mopidy_musicbox_webclient/static/js/controls.js
vendored
28
mopidy_musicbox_webclient/static/js/controls.js
vendored
@ -504,22 +504,35 @@ function getCurrentlyPlaying() {
|
||||
return true;
|
||||
}
|
||||
|
||||
function getUriSchemes() {
|
||||
uriSchemes = {};
|
||||
return mopidy.getUriSchemes().then(function(schemes) {
|
||||
for (var i = 0; i < schemes.length; i++) {
|
||||
uriSchemes[schemes[i].toLowerCase()] = true;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getPlaylistByName(name, scheme, create) {
|
||||
var uri_scheme = scheme || '';
|
||||
var uri = '';
|
||||
if (uri_scheme && !uriSchemes[uri_scheme]) {
|
||||
return Mopidy.when(false);
|
||||
}
|
||||
return mopidy.playlists.asList().catch(console.error.bind(console)).then(function(plists) {
|
||||
for (var i = 0; i < plists.length; i++) {
|
||||
if ((plists[i].name === name) && (scheme === '' || getScheme(plists[i].uri) === scheme)) {
|
||||
if ((plists[i].name === name) && (uri_scheme === '' || getScheme(plists[i].uri) === uri_scheme)) {
|
||||
return plists[i];
|
||||
}
|
||||
}
|
||||
if (create) {
|
||||
return mopidy.playlists.create({'name': name, 'uri_scheme': scheme}).done(function(plist) {
|
||||
return mopidy.playlists.create({'name': name, 'uri_scheme': uri_scheme}).done(function(plist) {
|
||||
console.log("Created playlist '%s'", plist.name);
|
||||
return plist;
|
||||
});
|
||||
}
|
||||
console.log("Can't find playist '%s", name);
|
||||
return Mopidy.when(false);
|
||||
});
|
||||
}
|
||||
|
||||
@ -534,12 +547,15 @@ function getFavourites() {
|
||||
return getPlaylistByName(STREAMS_PLAYLIST_NAME,
|
||||
STREAMS_PLAYLIST_SCHEME,
|
||||
true).then(function(playlist) {
|
||||
if (playlist) {
|
||||
return getPlaylistFull(playlist.uri);
|
||||
}
|
||||
return Mopidy.when(false);
|
||||
});
|
||||
}
|
||||
|
||||
function addToFavourites(newTracks) {
|
||||
getFavourites().then(function(favourites) {
|
||||
getFavourites().catch(console.error.bind(console)).then(function(favourites) {
|
||||
if (favourites) {
|
||||
if (favourites.tracks) {
|
||||
Array.prototype.push.apply(favourites.tracks, newTracks)
|
||||
@ -591,12 +607,16 @@ function deleteFavourite(index) {
|
||||
function showFavourites() {
|
||||
$('#streamuristable').empty();
|
||||
getFavourites().then(function(favourites) {
|
||||
if (!favourites) {
|
||||
return;
|
||||
}
|
||||
var tmp = '';
|
||||
|
||||
$.cookie.json = true;
|
||||
if ($.cookie('streamUris')) {
|
||||
tmp = '<button class="btn" style="padding: 5px; width: 100%" type="button" onclick="return upgradeStreamUrisToFavourites();">Convert StreamUris</button>'
|
||||
}
|
||||
if (favourites && favourites.tracks) {
|
||||
if (favourites.tracks) {
|
||||
var child = '';
|
||||
for (var i = 0; i < favourites.tracks.length; i++) {
|
||||
child = '<li><span class="ui-icon ui-icon-delete ui-icon-shadow" style="float:right; margin: .5em; margin-top: .8em;"><a href="#" onclick="return deleteFavourite(\'' + i + '\');"> </a></span>' +
|
||||
|
||||
@ -36,6 +36,7 @@ var playlistslistScroll;
|
||||
|
||||
var STREAMS_PLAYLIST_NAME = '[Radio Streams]';
|
||||
var STREAMS_PLAYLIST_SCHEME = 'm3u';
|
||||
var uriSchemes = {};
|
||||
|
||||
//array of cached playlists (not only user-playlists, also search, artist, album-playlists)
|
||||
var playlists = {};
|
||||
|
||||
@ -231,7 +231,9 @@ function initSocketevents() {
|
||||
getCurrentPlaylist();
|
||||
updateStatusOfAll();
|
||||
getPlaylists();
|
||||
getUriSchemes().then(function() {
|
||||
showFavourites();
|
||||
});
|
||||
getBrowseDir();
|
||||
getSearchSchemes();
|
||||
showLoading(false);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user