diff --git a/frontend/src/Movie/Delete/DeleteMovieModalContent.js b/frontend/src/Movie/Delete/DeleteMovieModalContent.js index f0e288573..a711a70fc 100644 --- a/frontend/src/Movie/Delete/DeleteMovieModalContent.js +++ b/frontend/src/Movie/Delete/DeleteMovieModalContent.js @@ -42,8 +42,7 @@ class DeleteMovieModalContent extends Component { const deleteFiles = this.state.deleteFiles; const addNetImportExclusion = this.state.addNetImportExclusion; - this.setState({ deleteFiles: false }); - this.setState({ addNetImportExclusion: false }); + this.setState({ deleteFiles: false, addNetImportExclusion: false }); this.props.onDeletePress(deleteFiles, addNetImportExclusion); } diff --git a/frontend/src/Movie/Editor/Delete/DeleteMovieModalContent.js b/frontend/src/Movie/Editor/Delete/DeleteMovieModalContent.js index 71dbc946e..4b9436f34 100644 --- a/frontend/src/Movie/Editor/Delete/DeleteMovieModalContent.js +++ b/frontend/src/Movie/Editor/Delete/DeleteMovieModalContent.js @@ -20,7 +20,8 @@ class DeleteMovieModalContent extends Component { super(props, context); this.state = { - deleteFiles: false + deleteFiles: false, + addNetImportExclusion: false }; } @@ -31,11 +32,16 @@ class DeleteMovieModalContent extends Component { this.setState({ deleteFiles: value }); } + onAddNetImportExclusionChange = ({ value }) => { + this.setState({ addNetImportExclusion: value }); + } + onDeleteMovieConfirmed = () => { const deleteFiles = this.state.deleteFiles; + const addNetImportExclusion = this.state.addNetImportExclusion; - this.setState({ deleteFiles: false }); - this.props.onDeleteSelectedPress(deleteFiles); + this.setState({ deleteFiles: false, addNetImportExclusion: false }); + this.props.onDeleteSelectedPress(deleteFiles, addNetImportExclusion); } // @@ -46,7 +52,9 @@ class DeleteMovieModalContent extends Component { movies, onModalClose } = this.props; + const deleteFiles = this.state.deleteFiles; + const addNetImportExclusion = this.state.addNetImportExclusion; return ( @@ -68,6 +76,19 @@ class DeleteMovieModalContent extends Component { onChange={this.onDeleteFilesChange} /> + + + Add List Exclusion + + +
diff --git a/frontend/src/Movie/Editor/Delete/DeleteMovieModalContentConnector.js b/frontend/src/Movie/Editor/Delete/DeleteMovieModalContentConnector.js index d890b965f..c7f005cb4 100644 --- a/frontend/src/Movie/Editor/Delete/DeleteMovieModalContentConnector.js +++ b/frontend/src/Movie/Editor/Delete/DeleteMovieModalContentConnector.js @@ -31,10 +31,11 @@ function createMapStateToProps() { function createMapDispatchToProps(dispatch, props) { return { - onDeleteSelectedPress(deleteFiles) { + onDeleteSelectedPress(deleteFiles, addNetImportExclusion) { dispatch(bulkDeleteMovie({ movieIds: props.movieIds, - deleteFiles + deleteFiles, + addNetImportExclusion })); props.onModalClose(); diff --git a/frontend/src/Store/Actions/movieIndexActions.js b/frontend/src/Store/Actions/movieIndexActions.js index 25b49b9f3..6f4d7a59d 100644 --- a/frontend/src/Store/Actions/movieIndexActions.js +++ b/frontend/src/Store/Actions/movieIndexActions.js @@ -1,3 +1,4 @@ +import $ from 'jquery'; import { createAction } from 'redux-actions'; import { batchActions } from 'redux-batched-actions'; import createAjaxRequest from 'Utilities/createAjaxRequest'; @@ -355,13 +356,18 @@ export const actionHandlers = handleThunks({ }, [BULK_DELETE_MOVIE]: function(getState, payload, dispatch) { + const { + id, + ...queryParams + } = payload; + dispatch(set({ section, isDeleting: true })); const promise = createAjaxRequest({ - url: '/movie/editor', + url: `/movie/editor?${$.param(queryParams, true)}`, method: 'DELETE', data: JSON.stringify(payload), dataType: 'json' diff --git a/src/Radarr.Api.V2/Movies/MovieEditorModule.cs b/src/Radarr.Api.V2/Movies/MovieEditorModule.cs index 3027c0524..1de706575 100644 --- a/src/Radarr.Api.V2/Movies/MovieEditorModule.cs +++ b/src/Radarr.Api.V2/Movies/MovieEditorModule.cs @@ -89,9 +89,12 @@ namespace Radarr.Api.V2.Movies { var resource = Request.Body.FromJson(); + var addExclusion = Request.GetBooleanQueryParameter("addNetImportExclusion"); + var deleteFiles = Request.GetBooleanQueryParameter("deleteFiles"); + foreach (var id in resource.MovieIds) { - _movieService.DeleteMovie(id, false, false); + _movieService.DeleteMovie(id, deleteFiles, addExclusion); } return new object(); diff --git a/src/Radarr.Api.V2/Movies/MovieModule.cs b/src/Radarr.Api.V2/Movies/MovieModule.cs index 3b850394b..413979807 100644 --- a/src/Radarr.Api.V2/Movies/MovieModule.cs +++ b/src/Radarr.Api.V2/Movies/MovieModule.cs @@ -116,16 +116,9 @@ namespace Radarr.Api.V2.Movies private void DeleteMovie(int id) { - var addExclusion = false; - var addExclusionQuery = Request.Query.addNetImportExclusion; - + var addExclusion = Request.GetBooleanQueryParameter("addNetImportExclusion"); var deleteFiles = Request.GetBooleanQueryParameter("deleteFiles"); - if (addExclusionQuery.HasValue) - { - addExclusion = Convert.ToBoolean(addExclusionQuery.Value); - } - _moviesService.DeleteMovie(id, deleteFiles, addExclusion); }