diff --git a/frontend/src/Album/Details/AlbumDetailsPageConnector.js b/frontend/src/Album/Details/AlbumDetailsPageConnector.js index 7f9f9b19a..bf9c53992 100644 --- a/frontend/src/Album/Details/AlbumDetailsPageConnector.js +++ b/frontend/src/Album/Details/AlbumDetailsPageConnector.js @@ -55,7 +55,10 @@ class AlbumDetailsPageConnector extends Component { populate = () => { const foreignAlbumId = this.props.foreignAlbumId; this.setState({ hasMounted: true }); - this.props.fetchAlbums({ foreignAlbumId }); + this.props.fetchAlbums({ + foreignAlbumId, + includeAllArtistAlbums: true + }); } unpopulate = () => { diff --git a/src/Lidarr.Api.V1/Albums/AlbumModule.cs b/src/Lidarr.Api.V1/Albums/AlbumModule.cs index e029d239c..25acab4c4 100644 --- a/src/Lidarr.Api.V1/Albums/AlbumModule.cs +++ b/src/Lidarr.Api.V1/Albums/AlbumModule.cs @@ -42,6 +42,7 @@ namespace Lidarr.Api.V1.Albums var artistIdQuery = Request.Query.ArtistId; var albumIdsQuery = Request.Query.AlbumIds; var foreignIdQuery = Request.Query.ForeignAlbumId; + var includeAllArtistAlbumsQuery = Request.Query.IncludeAllArtistAlbums; if (!Request.Query.ArtistId.HasValue && !albumIdsQuery.HasValue && !foreignIdQuery.HasValue) { @@ -57,9 +58,18 @@ namespace Lidarr.Api.V1.Albums if (foreignIdQuery.HasValue) { - int artistId = _albumService.FindById(foreignIdQuery.Value).ArtistId; - - return MapToResource(_albumService.GetAlbumsByArtist(artistId), false); + string foreignAlbumId = foreignIdQuery.Value.ToString(); + + var album = _albumService.FindById(foreignAlbumId); + + if (includeAllArtistAlbumsQuery.HasValue && Convert.ToBoolean(includeAllArtistAlbumsQuery.Value)) + { + return MapToResource(_albumService.GetAlbumsByArtist(album.ArtistId), false); + } + else + { + return MapToResource(new List { album }, false); + } } string albumIdsValue = albumIdsQuery.Value.ToString();