From 801204b6def0a444748d6e106a83762e4088667d Mon Sep 17 00:00:00 2001 From: Qstick Date: Sat, 25 Jun 2022 16:01:01 -0500 Subject: [PATCH] New: Bulk Edit Collections Profile, Root, Availability Fixes #7350 --- frontend/src/Collection/CollectionFooter.js | 74 ++++++++++++++++++- .../Store/Actions/movieCollectionActions.js | 14 +++- .../Collections/CollectionController.cs | 16 ++++ .../Collections/CollectionUpdateResource.cs | 4 + 4 files changed, 104 insertions(+), 4 deletions(-) diff --git a/frontend/src/Collection/CollectionFooter.js b/frontend/src/Collection/CollectionFooter.js index 3f5016e5f..c746e043b 100644 --- a/frontend/src/Collection/CollectionFooter.js +++ b/frontend/src/Collection/CollectionFooter.js @@ -1,6 +1,9 @@ import _ from 'lodash'; import PropTypes from 'prop-types'; import React, { Component } from 'react'; +import AvailabilitySelectInput from 'Components/Form/AvailabilitySelectInput'; +import QualityProfileSelectInputConnector from 'Components/Form/QualityProfileSelectInputConnector'; +import RootFolderSelectInputConnector from 'Components/Form/RootFolderSelectInputConnector'; import SelectInput from 'Components/Form/SelectInput'; import SpinnerButton from 'Components/Link/SpinnerButton'; import PageContentFooter from 'Components/Page/PageContentFooter'; @@ -22,6 +25,9 @@ class CollectionFooter extends Component { this.state = { monitor: NO_CHANGE, monitored: NO_CHANGE, + qualityProfileId: NO_CHANGE, + minimumAvailability: NO_CHANGE, + rootFolderPath: NO_CHANGE, destinationRootFolder: null }; } @@ -36,7 +42,10 @@ class CollectionFooter extends Component { if (prevProps.isSaving && !isSaving && !saveError) { this.setState({ monitored: NO_CHANGE, - monitor: NO_CHANGE + monitor: NO_CHANGE, + qualityProfileId: NO_CHANGE, + rootFolderPath: NO_CHANGE, + minimumAvailability: NO_CHANGE }); } @@ -55,7 +64,9 @@ class CollectionFooter extends Component { onUpdateSelectedPress = () => { const { monitor, - monitored + monitored, + qualityProfileId, + minimumAvailability } = this.state; const changes = {}; @@ -68,6 +79,14 @@ class CollectionFooter extends Component { changes.monitor = monitor; } + if (qualityProfileId !== NO_CHANGE) { + changes.qualityProfileId = qualityProfileId; + } + + if (minimumAvailability !== NO_CHANGE) { + changes.minimumAvailability = minimumAvailability; + } + this.props.onUpdateSelectedPress(changes); }; @@ -82,7 +101,10 @@ class CollectionFooter extends Component { const { monitored, - monitor + monitor, + qualityProfileId, + minimumAvailability, + rootFolderPath } = this.state; const monitoredOptions = [ @@ -125,6 +147,52 @@ class CollectionFooter extends Component { /> +
+ + + +
+ +
+ + + +
+ +
+ + + +
+
CollectionIds { get; set; } public bool? Monitored { get; set; } public bool? MonitorMovies { get; set; } + public int? QualityProfileId { get; set; } + public string RootFolderPath { get; set; } + public MovieStatusType? MinimumAvailability { get; set; } } }