From 651abf9faaaa85b11651262c00f42ed1bc47efb3 Mon Sep 17 00:00:00 2001 From: Michael Casey Date: Sun, 7 Feb 2021 13:18:47 +1000 Subject: [PATCH] New: Persist search settings in add new artist and album (cherry picked from commit fc3bea370facb22fd1b2f3cc264bf5d0a84f30e1) Closes #1967 --- .../Search/Album/AddNewAlbumModalContent.js | 30 +++++++------------ .../Album/AddNewAlbumModalContentConnector.js | 8 +++-- .../Search/Artist/AddNewArtistModalContent.js | 30 +++++++------------ .../AddNewArtistModalContentConnector.js | 8 +++-- frontend/src/Store/Actions/searchActions.js | 2 ++ src/NzbDrone.Core/Localization/Core/en.json | 4 +++ 6 files changed, 36 insertions(+), 46 deletions(-) diff --git a/frontend/src/Search/Album/AddNewAlbumModalContent.js b/frontend/src/Search/Album/AddNewAlbumModalContent.js index 5c2c70135..2e461a5a0 100644 --- a/frontend/src/Search/Album/AddNewAlbumModalContent.js +++ b/frontend/src/Search/Album/AddNewAlbumModalContent.js @@ -15,26 +15,11 @@ import styles from './AddNewAlbumModalContent.css'; class AddNewAlbumModalContent extends Component { - // - // Lifecycle - - constructor(props, context) { - super(props, context); - - this.state = { - searchForNewAlbum: false - }; - } - // // Listeners - onSearchForNewAlbumChange = ({ value }) => { - this.setState({ searchForNewAlbum: value }); - }; - onAddAlbumPress = () => { - this.props.onAddAlbumPress(this.state.searchForNewAlbum); + this.props.onAddAlbumPress(); }; // @@ -47,10 +32,12 @@ class AddNewAlbumModalContent extends Component { disambiguation, overview, images, + searchForNewAlbum, isAdding, isExistingArtist, isSmallScreen, onModalClose, + onInputChange, ...otherProps } = this.props; @@ -105,6 +92,7 @@ class AddNewAlbumModalContent extends Component { } @@ -115,15 +103,15 @@ class AddNewAlbumModalContent extends Component { @@ -133,7 +121,7 @@ class AddNewAlbumModalContent extends Component { isSpinning={isAdding} onPress={this.onAddAlbumPress} > - Add {albumTitle} + {translate('AddAlbumWithTitle', { albumTitle })} @@ -149,9 +137,11 @@ AddNewAlbumModalContent.propTypes = { images: PropTypes.arrayOf(PropTypes.object).isRequired, isAdding: PropTypes.bool.isRequired, addError: PropTypes.object, + searchForNewAlbum: PropTypes.object.isRequired, isExistingArtist: PropTypes.bool.isRequired, isSmallScreen: PropTypes.bool.isRequired, onModalClose: PropTypes.func.isRequired, + onInputChange: PropTypes.func.isRequired, onAddAlbumPress: PropTypes.func.isRequired }; diff --git a/frontend/src/Search/Album/AddNewAlbumModalContentConnector.js b/frontend/src/Search/Album/AddNewAlbumModalContentConnector.js index dd7c03cab..e315b49cd 100644 --- a/frontend/src/Search/Album/AddNewAlbumModalContentConnector.js +++ b/frontend/src/Search/Album/AddNewAlbumModalContentConnector.js @@ -83,7 +83,7 @@ class AddNewAlbumModalContentConnector extends Component { this.props.setAddDefault({ [name]: value }); }; - onAddAlbumPress = (searchForNewAlbum) => { + onAddAlbumPress = () => { const { foreignAlbumId, rootFolderPath, @@ -91,6 +91,7 @@ class AddNewAlbumModalContentConnector extends Component { monitorNewItems, qualityProfileId, metadataProfileId, + searchForNewAlbum, tags } = this.props; @@ -101,8 +102,8 @@ class AddNewAlbumModalContentConnector extends Component { monitorNewItems: monitorNewItems.value, qualityProfileId: qualityProfileId.value, metadataProfileId: metadataProfileId.value, - tags: tags.value, - searchForNewAlbum + searchForNewAlbum: searchForNewAlbum.value, + tags: tags.value }); }; @@ -129,6 +130,7 @@ AddNewAlbumModalContentConnector.propTypes = { qualityProfileId: PropTypes.object, metadataProfileId: PropTypes.object, noneMetadataProfileId: PropTypes.number.isRequired, + searchForNewAlbum: PropTypes.object.isRequired, tags: PropTypes.object.isRequired, onModalClose: PropTypes.func.isRequired, setAddDefault: PropTypes.func.isRequired, diff --git a/frontend/src/Search/Artist/AddNewArtistModalContent.js b/frontend/src/Search/Artist/AddNewArtistModalContent.js index 83e7898ed..9719985f6 100644 --- a/frontend/src/Search/Artist/AddNewArtistModalContent.js +++ b/frontend/src/Search/Artist/AddNewArtistModalContent.js @@ -15,26 +15,11 @@ import styles from './AddNewArtistModalContent.css'; class AddNewArtistModalContent extends Component { - // - // Lifecycle - - constructor(props, context) { - super(props, context); - - this.state = { - searchForMissingAlbums: false - }; - } - // // Listeners - onSearchForMissingAlbumsChange = ({ value }) => { - this.setState({ searchForMissingAlbums: value }); - }; - onAddArtistPress = () => { - this.props.onAddArtistPress(this.state.searchForMissingAlbums); + this.props.onAddArtistPress(); }; // @@ -46,9 +31,11 @@ class AddNewArtistModalContent extends Component { disambiguation, overview, images, + searchForMissingAlbums, isAdding, isSmallScreen, onModalClose, + onInputChange, ...otherProps } = this.props; @@ -96,6 +83,7 @@ class AddNewArtistModalContent extends Component { @@ -106,15 +94,15 @@ class AddNewArtistModalContent extends Component { @@ -124,7 +112,7 @@ class AddNewArtistModalContent extends Component { isSpinning={isAdding} onPress={this.onAddArtistPress} > - Add {artistName} + {translate('AddArtistWithName', { artistName })} @@ -139,9 +127,11 @@ AddNewArtistModalContent.propTypes = { images: PropTypes.arrayOf(PropTypes.object).isRequired, isAdding: PropTypes.bool.isRequired, addError: PropTypes.object, + searchForMissingAlbums: PropTypes.object.isRequired, isSmallScreen: PropTypes.bool.isRequired, isWindows: PropTypes.bool.isRequired, onModalClose: PropTypes.func.isRequired, + onInputChange: PropTypes.func.isRequired, onAddArtistPress: PropTypes.func.isRequired }; diff --git a/frontend/src/Search/Artist/AddNewArtistModalContentConnector.js b/frontend/src/Search/Artist/AddNewArtistModalContentConnector.js index 1b50869e5..a33c4bbf7 100644 --- a/frontend/src/Search/Artist/AddNewArtistModalContentConnector.js +++ b/frontend/src/Search/Artist/AddNewArtistModalContentConnector.js @@ -55,7 +55,7 @@ class AddNewArtistModalContentConnector extends Component { this.props.setAddDefault({ [name]: value }); }; - onAddArtistPress = (searchForMissingAlbums) => { + onAddArtistPress = () => { const { foreignArtistId, rootFolderPath, @@ -63,6 +63,7 @@ class AddNewArtistModalContentConnector extends Component { monitorNewItems, qualityProfileId, metadataProfileId, + searchForMissingAlbums, tags } = this.props; @@ -73,8 +74,8 @@ class AddNewArtistModalContentConnector extends Component { monitorNewItems: monitorNewItems.value, qualityProfileId: qualityProfileId.value, metadataProfileId: metadataProfileId.value, - tags: tags.value, - searchForMissingAlbums + searchForMissingAlbums: searchForMissingAlbums.value, + tags: tags.value }); }; @@ -99,6 +100,7 @@ AddNewArtistModalContentConnector.propTypes = { monitorNewItems: PropTypes.object.isRequired, qualityProfileId: PropTypes.object, metadataProfileId: PropTypes.object, + searchForMissingAlbums: PropTypes.object.isRequired, tags: PropTypes.object.isRequired, onModalClose: PropTypes.func.isRequired, setAddDefault: PropTypes.func.isRequired, diff --git a/frontend/src/Store/Actions/searchActions.js b/frontend/src/Store/Actions/searchActions.js index c72cdc901..c2af6f47b 100644 --- a/frontend/src/Store/Actions/searchActions.js +++ b/frontend/src/Store/Actions/searchActions.js @@ -36,6 +36,8 @@ export const defaultState = { monitorNewItems: monitorNewItemsOptions[0].key, qualityProfileId: 0, metadataProfileId: 0, + searchForMissingAlbums: false, + searchForNewAlbum: false, tags: [] } }; diff --git a/src/NzbDrone.Core/Localization/Core/en.json b/src/NzbDrone.Core/Localization/Core/en.json index aaf14ceb3..231723105 100644 --- a/src/NzbDrone.Core/Localization/Core/en.json +++ b/src/NzbDrone.Core/Localization/Core/en.json @@ -8,6 +8,8 @@ "Actions": "Actions", "Activity": "Activity", "Add": "Add", + "AddAlbumWithTitle": "Add {albumTitle}", + "AddArtistWithName": "Add {artistName}", "AddAutoTag": "Add Auto Tag", "AddAutoTagError": "Unable to add a new auto tag, please try again.", "AddCondition": "Add Condition", @@ -30,8 +32,10 @@ "AddMissing": "Add missing", "AddNew": "Add New", "AddNewAlbum": "Add New Album", + "AddNewAlbumSearchForNewAlbum": "Start search for new album", "AddNewArtist": "Add New Artist", "AddNewArtistRootFolderHelpText": "'{folder}' subfolder will be created automatically", + "AddNewArtistSearchForMissingAlbums": "Start search for missing albums", "AddNewItem": "Add New Item", "AddQualityProfile": "Add Quality Profile", "AddReleaseProfile": "Add Release Profile",