diff --git a/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContent.js b/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContent.js
index aa7ffb159..e97824564 100644
--- a/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContent.js
+++ b/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContent.js
@@ -56,7 +56,6 @@ class AddNewArtistModalContent extends Component {
render() {
const {
artistName,
- // year,
overview,
images,
isAdding,
@@ -64,8 +63,9 @@ class AddNewArtistModalContent extends Component {
monitor,
qualityProfileId,
languageProfileId,
- // seriesType,
albumFolder,
+ primaryAlbumTypes,
+ secondaryAlbumTypes,
tags,
showLanguageProfile,
isSmallScreen,
@@ -167,6 +167,28 @@ class AddNewArtistModalContent extends Component {
/>
+
+ Primary Album Types
+
+
+
+
+
+ Secondary Album Types
+
+
+
+
Tags
@@ -213,7 +235,6 @@ class AddNewArtistModalContent extends Component {
AddNewArtistModalContent.propTypes = {
artistName: PropTypes.string.isRequired,
- // year: PropTypes.number.isRequired,
overview: PropTypes.string,
images: PropTypes.arrayOf(PropTypes.object).isRequired,
isAdding: PropTypes.bool.isRequired,
@@ -222,8 +243,9 @@ AddNewArtistModalContent.propTypes = {
monitor: PropTypes.object.isRequired,
qualityProfileId: PropTypes.object,
languageProfileId: PropTypes.object,
- // seriesType: PropTypes.object.isRequired,
albumFolder: PropTypes.object.isRequired,
+ primaryAlbumTypes: PropTypes.object.isRequired,
+ secondaryAlbumTypes: PropTypes.object.isRequired,
tags: PropTypes.object.isRequired,
showLanguageProfile: PropTypes.bool.isRequired,
isSmallScreen: PropTypes.bool.isRequired,
diff --git a/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContentConnector.js b/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContentConnector.js
index 2a607f047..b971432c3 100644
--- a/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContentConnector.js
+++ b/frontend/src/AddArtist/AddNewArtist/AddNewArtistModalContentConnector.js
@@ -60,6 +60,8 @@ class AddNewArtistModalContentConnector extends Component {
qualityProfileId,
languageProfileId,
albumFolder,
+ primaryAlbumTypes,
+ secondaryAlbumTypes,
tags
} = this.props;
@@ -70,6 +72,8 @@ class AddNewArtistModalContentConnector extends Component {
qualityProfileId: qualityProfileId.value,
languageProfileId: languageProfileId.value,
albumFolder: albumFolder.value,
+ primaryAlbumTypes: primaryAlbumTypes.value,
+ secondaryAlbumTypes: secondaryAlbumTypes.value,
tags: tags.value,
searchForMissingAlbums
});
@@ -96,6 +100,8 @@ AddNewArtistModalContentConnector.propTypes = {
qualityProfileId: PropTypes.object,
languageProfileId: PropTypes.object,
albumFolder: PropTypes.object.isRequired,
+ primaryAlbumTypes: PropTypes.object.isRequired,
+ secondaryAlbumTypes: PropTypes.object.isRequired,
tags: PropTypes.object.isRequired,
onModalClose: PropTypes.func.isRequired,
setAddArtistDefault: PropTypes.func.isRequired,
diff --git a/frontend/src/Store/Reducers/addArtistReducers.js b/frontend/src/Store/Reducers/addArtistReducers.js
index ea5b36949..fc1d0aa61 100644
--- a/frontend/src/Store/Reducers/addArtistReducers.js
+++ b/frontend/src/Store/Reducers/addArtistReducers.js
@@ -23,6 +23,8 @@ export const defaultState = {
qualityProfileId: 0,
languageProfileId: 0,
seriesType: 'standard',
+ primaryAlbumTypes: 'Studio, Single',
+ secondaryAlbumTypes: '',
albumFolder: true,
tags: []
}
diff --git a/frontend/src/Store/Selectors/createImportArtistItemSelector.js b/frontend/src/Store/Selectors/createImportArtistItemSelector.js
index 22f962012..ba136b06b 100644
--- a/frontend/src/Store/Selectors/createImportArtistItemSelector.js
+++ b/frontend/src/Store/Selectors/createImportArtistItemSelector.js
@@ -17,7 +17,7 @@ function createImportArtistItemSelector() {
defaultMonitor: addArtist.defaults.monitor,
defaultQualityProfileId: addArtist.defaults.qualityProfileId,
defaultSeriesType: addArtist.defaults.seriesType,
- defaultSeasonFolder: addArtist.defaults.seasonFolder,
+ defaultSeasonFolder: addArtist.defaults.albumFolder,
...item,
isExistingArtist
};
diff --git a/frontend/src/Utilities/Series/getNewSeries.js b/frontend/src/Utilities/Series/getNewSeries.js
index d89dc3a10..9d98b9427 100644
--- a/frontend/src/Utilities/Series/getNewSeries.js
+++ b/frontend/src/Utilities/Series/getNewSeries.js
@@ -8,6 +8,8 @@ function getNewSeries(series, payload) {
languageProfileId,
artistType,
albumFolder,
+ primaryAlbumTypes,
+ secondaryAlbumTypes,
tags,
searchForMissingAlbums = false
} = payload;
@@ -26,6 +28,8 @@ function getNewSeries(series, payload) {
series.rootFolderPath = rootFolderPath;
series.artistType = artistType;
series.albumFolder = albumFolder;
+ series.primaryAlbumTypes = primaryAlbumTypes;
+ series.secondaryAlbumTypes = secondaryAlbumTypes;
series.tags = tags;
return series;
diff --git a/src/Lidarr.Api.V3/Artist/ArtistResource.cs b/src/Lidarr.Api.V3/Artist/ArtistResource.cs
index 61fd70f35..96e53b7e1 100644
--- a/src/Lidarr.Api.V3/Artist/ArtistResource.cs
+++ b/src/Lidarr.Api.V3/Artist/ArtistResource.cs
@@ -29,6 +29,8 @@ namespace Lidarr.Api.V3.Artist
public string Overview { get; set; }
public string ArtistType { get; set; }
public string Disambiguation { get; set; }
+ public string PrimaryAlbumTypes { get; set; }
+ public string SecondaryAlbumTypes { get; set; }
public List Links { get; set; }
public int? AlbumCount { get; set; }
@@ -87,6 +89,9 @@ namespace Lidarr.Api.V3.Artist
ArtistType = model.ArtistType,
Disambiguation = model.Disambiguation,
+ PrimaryAlbumTypes = model.PrimaryAlbumTypes,
+ SecondaryAlbumTypes = model.SecondaryAlbumTypes,
+
Images = model.Images,
Albums = model.Albums.ToResource(),
@@ -142,6 +147,8 @@ namespace Lidarr.Api.V3.Artist
ProfileId = resource.QualityProfileId,
LanguageProfileId = resource.LanguageProfileId,
Links = resource.Links,
+ PrimaryAlbumTypes = resource.PrimaryAlbumTypes,
+ SecondaryAlbumTypes = resource.SecondaryAlbumTypes,
AlbumFolder = resource.AlbumFolder,
Monitored = resource.Monitored,
diff --git a/src/NzbDrone.Core/Datastore/Migration/120_artist_album_types.cs b/src/NzbDrone.Core/Datastore/Migration/120_artist_album_types.cs
new file mode 100644
index 000000000..9517a6758
--- /dev/null
+++ b/src/NzbDrone.Core/Datastore/Migration/120_artist_album_types.cs
@@ -0,0 +1,21 @@
+using FluentMigrator;
+using NzbDrone.Core.Datastore.Migration.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace NzbDrone.Core.Datastore.Migration
+{
+ [Migration(120)]
+ public class artist_album_types : NzbDroneMigrationBase
+ {
+ protected override void MainDbUpgrade()
+ {
+ Alter.Table("Artists")
+ .AddColumn("PrimaryAlbumTypes").AsString().Nullable()
+ .AddColumn("SecondaryAlbumTypes").AsString().Nullable();
+ }
+
+ }
+}
diff --git a/src/NzbDrone.Core/Music/Artist.cs b/src/NzbDrone.Core/Music/Artist.cs
index be70ee211..c6c28b93b 100644
--- a/src/NzbDrone.Core/Music/Artist.cs
+++ b/src/NzbDrone.Core/Music/Artist.cs
@@ -36,6 +36,8 @@ namespace NzbDrone.Core.Music
public string Overview { get; set; }
public string Disambiguation { get; set; }
public string ArtistType { get; set; }
+ public string PrimaryAlbumTypes { get; set; }
+ public string SecondaryAlbumTypes { get; set; }
public bool Monitored { get; set; }
public bool AlbumFolder { get; set; }
public DateTime? LastInfoSync { get; set; }
@@ -73,6 +75,8 @@ namespace NzbDrone.Core.Music
LanguageProfileId = otherArtist.LanguageProfileId;
Albums = otherArtist.Albums;
+ PrimaryAlbumTypes = otherArtist.PrimaryAlbumTypes;
+ SecondaryAlbumTypes = otherArtist.SecondaryAlbumTypes;
ProfileId = otherArtist.ProfileId;
Tags = otherArtist.Tags;
diff --git a/src/NzbDrone.Core/NzbDrone.Core.csproj b/src/NzbDrone.Core/NzbDrone.Core.csproj
index f6ad3a8f7..653b7342d 100644
--- a/src/NzbDrone.Core/NzbDrone.Core.csproj
+++ b/src/NzbDrone.Core/NzbDrone.Core.csproj
@@ -293,6 +293,7 @@
+