New: Ensure all unmapped folders are fetched when importing from a root folder

Co-Authored-By: Mark McDowall <markus101@users.noreply.github.com>

#4548
This commit is contained in:
Qstick
2020-06-28 22:57:46 -04:00
parent 5edbe4200b
commit f069801eba
7 changed files with 38 additions and 25 deletions

View File

@@ -79,7 +79,6 @@ class ImportMovie extends Component {
rootFolderId,
path,
rootFoldersFetching,
rootFoldersPopulated,
rootFoldersError,
unmappedFolders
} = this.props;
@@ -98,24 +97,30 @@ class ImportMovie extends Component {
onScroll={this.onScroll}
>
{
rootFoldersFetching && !rootFoldersPopulated &&
<LoadingIndicator />
rootFoldersFetching ? <LoadingIndicator /> : null
}
{
!rootFoldersFetching && !!rootFoldersError &&
<div>Unable to load root folders</div>
!rootFoldersFetching && !!rootFoldersError ?
<div>Unable to load root folders</div> :
null
}
{
!rootFoldersError && rootFoldersPopulated && !unmappedFolders.length &&
!rootFoldersError &&
!rootFoldersFetching &&
!unmappedFolders.length ?
<div>
All movies in {path} have been imported
</div>
</div> :
null
}
{
!rootFoldersError && rootFoldersPopulated && !!unmappedFolders.length && scroller &&
!rootFoldersError &&
!rootFoldersFetching &&
!!unmappedFolders.length &&
scroller ?
<ImportMovieTableConnector
rootFolderId={rootFolderId}
unmappedFolders={unmappedFolders}
@@ -126,17 +131,21 @@ class ImportMovie extends Component {
onSelectAllChange={this.onSelectAllChange}
onSelectedChange={this.onSelectedChange}
onRemoveSelectedStateItem={this.onRemoveSelectedStateItem}
/>
/> :
null
}
</PageContentBody>
{
!rootFoldersError && rootFoldersPopulated && !!unmappedFolders.length &&
!rootFoldersError &&
!rootFoldersFetching &&
!!unmappedFolders.length ?
<ImportMovieFooterConnector
selectedIds={this.getSelectedIds()}
onInputChange={this.onInputChange}
onImportPress={this.onImportPress}
/>
/> :
null
}
</PageContent>
);

View File

@@ -71,15 +71,14 @@ class ImportMovieConnector extends Component {
componentDidMount() {
const {
rootFolderId,
qualityProfiles,
defaultQualityProfileId,
dispatchFetchRootFolders,
dispatchSetAddMovieDefault
} = this.props;
if (!this.props.rootFoldersPopulated) {
dispatchFetchRootFolders();
}
dispatchFetchRootFolders({ id: rootFolderId, timeout: false });
let setDefaults = false;
const setDefaultPayload = {};
@@ -139,6 +138,8 @@ const routeMatchShape = createRouteMatchShape({
ImportMovieConnector.propTypes = {
match: routeMatchShape.isRequired,
rootFolderId: PropTypes.number.isRequired,
rootFoldersFetching: PropTypes.bool.isRequired,
rootFoldersPopulated: PropTypes.bool.isRequired,
qualityProfiles: PropTypes.arrayOf(PropTypes.object).isRequired,
defaultQualityProfileId: PropTypes.number.isRequired,