mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-16 10:03:51 -07:00
Add AlbumType Defaults on Imported Artists
This commit is contained in:
parent
7d045d5c54
commit
f4e831dd74
4 changed files with 52 additions and 8 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue