Checking for tracks without albums, fixes #241
This commit is contained in:
@ -1629,22 +1629,24 @@ const MopidyMiddleware = (function(){
|
||||
.then(response => {
|
||||
if (response.length <= 0) return
|
||||
|
||||
var albums = []
|
||||
for(var i = 0; i < response.length; i++){
|
||||
var album = Object.assign(
|
||||
{},
|
||||
response[i].album,
|
||||
{
|
||||
uri: response[i].album.uri,
|
||||
}
|
||||
);
|
||||
if (album){
|
||||
function getByURI(albumToCheck){
|
||||
return album.uri == albumToCheck.uri
|
||||
}
|
||||
var existingAlbum = albums.find(getByURI);
|
||||
if (!existingAlbum){
|
||||
albums.push(album);
|
||||
var albums = [];
|
||||
for (var i = 0; i < response.length; i++){
|
||||
if (response[i].album){
|
||||
var album = Object.assign(
|
||||
{},
|
||||
response[i].album,
|
||||
{
|
||||
uri: response[i].album.uri,
|
||||
}
|
||||
);
|
||||
if (album){
|
||||
function getByURI(albumToCheck){
|
||||
return album.uri == albumToCheck.uri
|
||||
}
|
||||
var existingAlbum = albums.find(getByURI);
|
||||
if (!existingAlbum){
|
||||
albums.push(album);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1652,7 +1654,7 @@ const MopidyMiddleware = (function(){
|
||||
store.dispatch({
|
||||
type: 'ALBUMS_LOADED',
|
||||
albums: albums
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
var artist = Object.assign(
|
||||
@ -1668,7 +1670,7 @@ const MopidyMiddleware = (function(){
|
||||
type: 'ARTIST_LOADED',
|
||||
key: artist.uri,
|
||||
artist: artist
|
||||
})
|
||||
});
|
||||
|
||||
// load artwork from LastFM
|
||||
if (!artist.images || artist.images.length <= 0){
|
||||
|
||||
@ -125,11 +125,14 @@ class Track extends React.Component{
|
||||
}
|
||||
|
||||
renderLyricsSelector(){
|
||||
if (!this.props.track.lyrics_results){
|
||||
if (this.props.track.lyrics_results === undefined || this.props.track.lyrics_results === null){
|
||||
return null;
|
||||
|
||||
} else if (this.props.track.lyrics_results.length <= 0){
|
||||
return (
|
||||
<div className="field lyrics-selector">
|
||||
<div className="input">
|
||||
<input type="text" disabled="disabled" value="Loading..." />
|
||||
<input type="text" disabled="disabled" value="No results" />
|
||||
<div className="description">
|
||||
Switch to another lyrics seach result
|
||||
</div>
|
||||
@ -213,7 +216,7 @@ class Track extends React.Component{
|
||||
uiActions={this.props.uiActions} /> : null}
|
||||
|
||||
<div className="thumbnail-wrapper">
|
||||
<URILink type="album" uri={track.album.uri}>
|
||||
<URILink type="album" uri={track.album ? track.album.uri : null}>
|
||||
<Thumbnail size="large" canZoom images={track.images} />
|
||||
</URILink>
|
||||
</div>
|
||||
@ -221,7 +224,12 @@ class Track extends React.Component{
|
||||
<div className="title">
|
||||
|
||||
<h1>{track.name}</h1>
|
||||
<h2 className="grey-text">{track.album ? <Link to={global.baseURL+'album/'+track.album.uri}>{track.album.name}</Link> : "Unknown album"} by <ArtistSentence artists={track.artists} /></h2>
|
||||
<h2 className="grey-text">
|
||||
{track.album && track.album.uri ? <Link to={global.baseURL+'album/'+track.album.uri}>{track.album.name}</Link> : null}
|
||||
{track.album && !track.album.uri ? track.album.name : null}
|
||||
{!track.album ? "Unknown album" : null}
|
||||
by <ArtistSentence artists={track.artists} />
|
||||
</h2>
|
||||
|
||||
<ul className="details">
|
||||
{!this.props.slim_mode ? <li className="has-tooltip"><FontAwesome name={helpers.sourceIcon(this.props.params.uri)} /><span className="tooltip">{helpers.uriSource(this.props.params.uri)} track</span></li> : null}
|
||||
|
||||
Reference in New Issue
Block a user