diff --git a/frontend/src/Series/Edit/EditSeriesModalConnector.js b/frontend/src/Series/Edit/EditSeriesModalConnector.js
index ed1e5c6a6..2337be5fa 100644
--- a/frontend/src/Series/Edit/EditSeriesModalConnector.js
+++ b/frontend/src/Series/Edit/EditSeriesModalConnector.js
@@ -2,14 +2,22 @@ import PropTypes from 'prop-types';
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { clearPendingChanges } from 'Store/Actions/baseActions';
+import { fetchRootFolders } from 'Store/Actions/rootFolderActions';
import EditSeriesModal from './EditSeriesModal';
const mapDispatchToProps = {
- clearPendingChanges
+ clearPendingChanges,
+ fetchRootFolders
};
class EditSeriesModalConnector extends Component {
+ //
+ // Lifecycle
+ componentDidMount() {
+ this.props.fetchRootFolders();
+ }
+
//
// Listeners
@@ -34,7 +42,8 @@ class EditSeriesModalConnector extends Component {
EditSeriesModalConnector.propTypes = {
...EditSeriesModal.propTypes,
onModalClose: PropTypes.func.isRequired,
- clearPendingChanges: PropTypes.func.isRequired
+ clearPendingChanges: PropTypes.func.isRequired,
+ fetchRootFolders: PropTypes.func.isRequired
};
export default connect(undefined, mapDispatchToProps)(EditSeriesModalConnector);
diff --git a/frontend/src/Series/Edit/EditSeriesModalContent.js b/frontend/src/Series/Edit/EditSeriesModalContent.js
index dafcdd41b..d37f02559 100644
--- a/frontend/src/Series/Edit/EditSeriesModalContent.js
+++ b/frontend/src/Series/Edit/EditSeriesModalContent.js
@@ -77,6 +77,7 @@ class EditSeriesModalContent extends Component {
qualityProfileId,
seriesType,
path,
+ rootFolderPath,
tags
} = item;
@@ -148,6 +149,23 @@ class EditSeriesModalContent extends Component {
/>
+
+ {translate('Root Folder')}
+
+
+
+
Tags
diff --git a/frontend/src/Series/Edit/EditSeriesModalContentConnector.js b/frontend/src/Series/Edit/EditSeriesModalContentConnector.js
index 0521f92df..9408de608 100644
--- a/frontend/src/Series/Edit/EditSeriesModalContentConnector.js
+++ b/frontend/src/Series/Edit/EditSeriesModalContentConnector.js
@@ -6,6 +6,7 @@ import { createSelector } from 'reselect';
import { saveSeries, setSeriesValue } from 'Store/Actions/seriesActions';
import createSeriesSelector from 'Store/Selectors/createSeriesSelector';
import selectSettings from 'Store/Selectors/selectSettings';
+import combinePath from 'Utilities/String/combinePath';
import EditSeriesModalContent from './EditSeriesModalContent';
function createIsPathChangingSelector() {
@@ -27,9 +28,10 @@ function createIsPathChangingSelector() {
function createMapStateToProps() {
return createSelector(
(state) => state.series,
+ (state) => state.system.status.item.isWindows,
createSeriesSelector(),
createIsPathChangingSelector(),
- (seriesState, series, isPathChanging) => {
+ (seriesState, isWindows, series, isPathChanging) => {
const {
isSaving,
saveError,
@@ -42,6 +44,7 @@ function createMapStateToProps() {
'qualityProfileId',
'seriesType',
'path',
+ 'rootFolderPath',
'tags'
]);
@@ -49,6 +52,7 @@ function createMapStateToProps() {
return {
title: series.title,
+ isWindows,
isSaving,
saveError,
isPathChanging,
@@ -80,7 +84,20 @@ class EditSeriesModalContentConnector extends Component {
// Listeners
onInputChange = ({ name, value }) => {
- this.props.dispatchSetSeriesValue({ name, value });
+ const {
+ dispatchSetSeriesValue,
+ isWindows,
+ title,
+ item: { path }
+ } = this.props;
+
+ dispatchSetSeriesValue({ name, value });
+
+ // Also update the path if the root folder path changes
+ if (name === 'rootFolderPath' && value !== 'noChange' && path.value.indexOf(value) === -1) {
+ const newPath = combinePath(isWindows, value, [title]);
+ dispatchSetSeriesValue({ name: 'path', value: newPath });
+ }
};
onSavePress = (moveFiles) => {
@@ -106,7 +123,10 @@ class EditSeriesModalContentConnector extends Component {
}
EditSeriesModalContentConnector.propTypes = {
+ title: PropTypes.string.isRequired,
+ item: PropTypes.object.isRequired,
seriesId: PropTypes.number,
+ isWindows: PropTypes.bool.isRequired,
isSaving: PropTypes.bool.isRequired,
saveError: PropTypes.object,
dispatchSetSeriesValue: PropTypes.func.isRequired,