Add AlbumType Defaults on Imported Artists

pull/6/head
Qstick 7 years ago
parent 7d045d5c54
commit f4e831dd74

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

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

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

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

Loading…
Cancel
Save