Add AlbumType Defaults on Imported Artists

This commit is contained in:
Qstick 2017-10-08 15:26:04 -04:00
parent 7d045d5c54
commit f4e831dd74
4 changed files with 52 additions and 8 deletions

View File

@ -23,14 +23,18 @@ class ImportArtistFooter extends Component {
defaultMonitor,
defaultQualityProfileId,
defaultLanguageProfileId,
defaultAlbumFolder
defaultAlbumFolder,
defaultPrimaryAlbumTypes,
defaultSecondaryAlbumTypes
} = props;
this.state = {
monitor: defaultMonitor,
qualityProfileId: defaultQualityProfileId,
languageProfileId: defaultLanguageProfileId,
albumFolder: defaultAlbumFolder
albumFolder: defaultAlbumFolder,
primaryAlbumTypes: defaultPrimaryAlbumTypes,
secondaryAlbumTypes: defaultSecondaryAlbumTypes
};
}
@ -40,17 +44,23 @@ class ImportArtistFooter extends Component {
defaultQualityProfileId,
defaultLanguageProfileId,
defaultAlbumFolder,
defaultPrimaryAlbumTypes,
defaultSecondaryAlbumTypes,
isMonitorMixed,
isQualityProfileIdMixed,
isLanguageProfileIdMixed,
isAlbumFolderMixed
isAlbumFolderMixed,
isPrimaryAlbumTypesMixed,
isSecondaryAlbumTypesMixed
} = this.props;
const {
monitor,
qualityProfileId,
languageProfileId,
albumFolder
albumFolder,
primaryAlbumTypes,
secondaryAlbumTypes
} = this.state;
const newState = {};
@ -79,6 +89,18 @@ class ImportArtistFooter extends Component {
newState.albumFolder = defaultAlbumFolder;
}
if (isPrimaryAlbumTypesMixed && primaryAlbumTypes != null) {
newState.primaryAlbumTypes = null;
} else if (!isPrimaryAlbumTypesMixed && primaryAlbumTypes !== defaultPrimaryAlbumTypes) {
newState.primaryAlbumTypes = defaultPrimaryAlbumTypes;
}
if (isSecondaryAlbumTypesMixed && secondaryAlbumTypes != null) {
newState.secondaryAlbumTypes = null;
} else if (!isSecondaryAlbumTypesMixed && secondaryAlbumTypes !== defaultSecondaryAlbumTypes) {
newState.secondaryAlbumTypes = defaultSecondaryAlbumTypes;
}
if (!_.isEmpty(newState)) {
this.setState(newState);
}
@ -111,7 +133,9 @@ class ImportArtistFooter extends Component {
monitor,
qualityProfileId,
languageProfileId,
albumFolder
albumFolder,
primaryAlbumTypes,
secondaryAlbumTypes
} = this.state;
return (
@ -221,10 +245,14 @@ ImportArtistFooter.propTypes = {
defaultQualityProfileId: PropTypes.number,
defaultLanguageProfileId: PropTypes.number,
defaultAlbumFolder: PropTypes.bool.isRequired,
defaultPrimaryAlbumTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
defaultSecondaryAlbumTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
isMonitorMixed: PropTypes.bool.isRequired,
isQualityProfileIdMixed: PropTypes.bool.isRequired,
isLanguageProfileIdMixed: PropTypes.bool.isRequired,
isAlbumFolderMixed: PropTypes.bool.isRequired,
isPrimaryAlbumTypesMixed: PropTypes.bool.isRequired,
isSecondaryAlbumTypesMixed: PropTypes.bool.isRequired,
showLanguageProfile: PropTypes.bool.isRequired,
onInputChange: PropTypes.func.isRequired,
onImportPress: PropTypes.func.isRequired

View File

@ -19,7 +19,9 @@ function createMapStateToProps() {
monitor: defaultMonitor,
qualityProfileId: defaultQualityProfileId,
languageProfileId: defaultLanguageProfileId,
albumFolder: defaultAlbumFolder
albumFolder: defaultAlbumFolder,
primaryAlbumTypes: defaultPrimaryAlbumTypes,
secondaryAlbumTypes: defaultSecondaryAlbumTypes
} = addArtist.defaults;
const items = importArtist.items;
@ -32,6 +34,8 @@ function createMapStateToProps() {
const isQualityProfileIdMixed = isMixed(items, selectedIds, defaultQualityProfileId, 'qualityProfileId');
const isLanguageProfileIdMixed = isMixed(items, selectedIds, defaultLanguageProfileId, 'languageProfileId');
const isAlbumFolderMixed = isMixed(items, selectedIds, defaultAlbumFolder, 'albumFolder');
const isPrimaryAlbumTypesMixed = isMixed(items, selectedIds, defaultPrimaryAlbumTypes, 'primaryAlbumTypes');
const isSecondaryAlbumTypesMixed = isMixed(items, selectedIds, defaultSecondaryAlbumTypes, 'secondaryAlbumTypes');
return {
selectedCount: selectedIds.length,
@ -41,10 +45,14 @@ function createMapStateToProps() {
defaultQualityProfileId,
defaultLanguageProfileId,
defaultAlbumFolder,
defaultPrimaryAlbumTypes,
defaultSecondaryAlbumTypes,
isMonitorMixed,
isQualityProfileIdMixed,
isLanguageProfileIdMixed,
isAlbumFolderMixed
isAlbumFolderMixed,
isPrimaryAlbumTypesMixed,
isSecondaryAlbumTypesMixed
};
}
);

View File

@ -23,6 +23,8 @@ class ImportArtistTable extends Component {
defaultQualityProfileId,
defaultLanguageProfileId,
defaultAlbumFolder,
defaultPrimaryAlbumTypes,
defaultSecondaryAlbumTypes,
onArtistLookup,
onSetImportArtistValue
} = this.props;
@ -31,7 +33,9 @@ class ImportArtistTable extends Component {
monitor: defaultMonitor,
qualityProfileId: defaultQualityProfileId,
languageProfileId: defaultLanguageProfileId,
albumFolder: defaultAlbumFolder
albumFolder: defaultAlbumFolder,
primaryAlbumTypes: defaultPrimaryAlbumTypes,
secondaryAlbumTypes: defaultSecondaryAlbumTypes
};
unmappedFolders.forEach((unmappedFolder) => {
@ -191,6 +195,8 @@ ImportArtistTable.propTypes = {
defaultQualityProfileId: PropTypes.number,
defaultLanguageProfileId: PropTypes.number,
defaultAlbumFolder: PropTypes.bool.isRequired,
defaultPrimaryAlbumTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
defaultSecondaryAlbumTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
allSelected: PropTypes.bool.isRequired,
allUnselected: PropTypes.bool.isRequired,
selectedState: PropTypes.object.isRequired,

View File

@ -16,6 +16,8 @@ function createMapStateToProps() {
defaultQualityProfileId: addArtist.defaults.qualityProfileId,
defaultLanguageProfileId: addArtist.defaults.languageProfileId,
defaultAlbumFolder: addArtist.defaults.albumFolder,
defaultPrimaryAlbumTypes: addArtist.defaults.primaryAlbumTypes,
defaultSecondaryAlbumTypes: addArtist.defaults.secondaryAlbumTypes,
items: importArtist.items,
isSmallScreen: dimensions.isSmallScreen,
allArtists