mirror of
https://github.com/Radarr/Radarr.git
synced 2024-10-05 15:47:20 +02:00
parent
ced624c2ff
commit
a059a700eb
@ -15,6 +15,7 @@ interface SavePayload {
|
|||||||
enabled?: boolean;
|
enabled?: boolean;
|
||||||
enableAuto?: boolean;
|
enableAuto?: boolean;
|
||||||
qualityProfileId?: number;
|
qualityProfileId?: number;
|
||||||
|
minimumAvailability?: string;
|
||||||
rootFolderPath?: string;
|
rootFolderPath?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -58,6 +59,7 @@ function ManageImportListsEditModalContent(
|
|||||||
const [qualityProfileId, setQualityProfileId] = useState<string | number>(
|
const [qualityProfileId, setQualityProfileId] = useState<string | number>(
|
||||||
NO_CHANGE
|
NO_CHANGE
|
||||||
);
|
);
|
||||||
|
const [minimumAvailability, setMinimumAvailability] = useState(NO_CHANGE);
|
||||||
const [rootFolderPath, setRootFolderPath] = useState(NO_CHANGE);
|
const [rootFolderPath, setRootFolderPath] = useState(NO_CHANGE);
|
||||||
|
|
||||||
const save = useCallback(() => {
|
const save = useCallback(() => {
|
||||||
@ -79,6 +81,11 @@ function ManageImportListsEditModalContent(
|
|||||||
payload.qualityProfileId = qualityProfileId as number;
|
payload.qualityProfileId = qualityProfileId as number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (minimumAvailability !== NO_CHANGE) {
|
||||||
|
hasChanges = true;
|
||||||
|
payload.minimumAvailability = minimumAvailability as string;
|
||||||
|
}
|
||||||
|
|
||||||
if (rootFolderPath !== NO_CHANGE) {
|
if (rootFolderPath !== NO_CHANGE) {
|
||||||
hasChanges = true;
|
hasChanges = true;
|
||||||
payload.rootFolderPath = rootFolderPath;
|
payload.rootFolderPath = rootFolderPath;
|
||||||
@ -93,6 +100,7 @@ function ManageImportListsEditModalContent(
|
|||||||
enabled,
|
enabled,
|
||||||
enableAuto,
|
enableAuto,
|
||||||
qualityProfileId,
|
qualityProfileId,
|
||||||
|
minimumAvailability,
|
||||||
rootFolderPath,
|
rootFolderPath,
|
||||||
onSavePress,
|
onSavePress,
|
||||||
onModalClose,
|
onModalClose,
|
||||||
@ -110,6 +118,9 @@ function ManageImportListsEditModalContent(
|
|||||||
case 'qualityProfileId':
|
case 'qualityProfileId':
|
||||||
setQualityProfileId(value);
|
setQualityProfileId(value);
|
||||||
break;
|
break;
|
||||||
|
case 'minimumAvailability':
|
||||||
|
setMinimumAvailability(value);
|
||||||
|
break;
|
||||||
case 'rootFolderPath':
|
case 'rootFolderPath':
|
||||||
setRootFolderPath(value);
|
setRootFolderPath(value);
|
||||||
break;
|
break;
|
||||||
@ -164,6 +175,19 @@ function ManageImportListsEditModalContent(
|
|||||||
/>
|
/>
|
||||||
</FormGroup>
|
</FormGroup>
|
||||||
|
|
||||||
|
<FormGroup>
|
||||||
|
<FormLabel>{translate('MinimumAvailability')}</FormLabel>
|
||||||
|
|
||||||
|
<FormInputGroup
|
||||||
|
type={inputTypes.AVAILABILITY_SELECT}
|
||||||
|
name="minimumAvailability"
|
||||||
|
value={minimumAvailability}
|
||||||
|
includeNoChange={true}
|
||||||
|
includeNoChangeDisabled={false}
|
||||||
|
onChange={onInputChange}
|
||||||
|
/>
|
||||||
|
</FormGroup>
|
||||||
|
|
||||||
<FormGroup>
|
<FormGroup>
|
||||||
<FormLabel>{translate('RootFolder')}</FormLabel>
|
<FormLabel>{translate('RootFolder')}</FormLabel>
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import Modal from 'Components/Modal/Modal';
|
import Modal from 'Components/Modal/Modal';
|
||||||
|
import { sizes } from 'Helpers/Props';
|
||||||
import ManageImportListsModalContent from './ManageImportListsModalContent';
|
import ManageImportListsModalContent from './ManageImportListsModalContent';
|
||||||
|
|
||||||
interface ManageImportListsModalProps {
|
interface ManageImportListsModalProps {
|
||||||
@ -11,7 +12,7 @@ function ManageImportListsModal(props: ManageImportListsModalProps) {
|
|||||||
const { isOpen, onModalClose } = props;
|
const { isOpen, onModalClose } = props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Modal isOpen={isOpen} onModalClose={onModalClose}>
|
<Modal isOpen={isOpen} size={sizes.EXTRA_LARGE} onModalClose={onModalClose}>
|
||||||
<ManageImportListsModalContent onModalClose={onModalClose} />
|
<ManageImportListsModalContent onModalClose={onModalClose} />
|
||||||
</Modal>
|
</Modal>
|
||||||
);
|
);
|
||||||
|
@ -52,6 +52,12 @@ const COLUMNS = [
|
|||||||
isSortable: true,
|
isSortable: true,
|
||||||
isVisible: true,
|
isVisible: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'minimumAvailability',
|
||||||
|
label: () => translate('MinimumAvailability'),
|
||||||
|
isSortable: true,
|
||||||
|
isVisible: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'rootFolderPath',
|
name: 'rootFolderPath',
|
||||||
label: () => translate('RootFolder'),
|
label: () => translate('RootFolder'),
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
.tags,
|
.tags,
|
||||||
.enabled,
|
.enabled,
|
||||||
.enableAuto,
|
.enableAuto,
|
||||||
|
.minimumAvailability,
|
||||||
.qualityProfileId,
|
.qualityProfileId,
|
||||||
.rootFolderPath,
|
.rootFolderPath,
|
||||||
.implementation {
|
.implementation {
|
||||||
|
@ -4,6 +4,7 @@ interface CssExports {
|
|||||||
'enableAuto': string;
|
'enableAuto': string;
|
||||||
'enabled': string;
|
'enabled': string;
|
||||||
'implementation': string;
|
'implementation': string;
|
||||||
|
'minimumAvailability': string;
|
||||||
'name': string;
|
'name': string;
|
||||||
'qualityProfileId': string;
|
'qualityProfileId': string;
|
||||||
'rootFolderPath': string;
|
'rootFolderPath': string;
|
||||||
|
@ -7,6 +7,7 @@ import TableRow from 'Components/Table/TableRow';
|
|||||||
import TagListConnector from 'Components/TagListConnector';
|
import TagListConnector from 'Components/TagListConnector';
|
||||||
import { createQualityProfileSelectorForHook } from 'Store/Selectors/createQualityProfileSelector';
|
import { createQualityProfileSelectorForHook } from 'Store/Selectors/createQualityProfileSelector';
|
||||||
import { SelectStateInputProps } from 'typings/props';
|
import { SelectStateInputProps } from 'typings/props';
|
||||||
|
import firstCharToUpper from 'Utilities/String/firstCharToUpper';
|
||||||
import translate from 'Utilities/String/translate';
|
import translate from 'Utilities/String/translate';
|
||||||
import styles from './ManageImportListsModalRow.css';
|
import styles from './ManageImportListsModalRow.css';
|
||||||
|
|
||||||
@ -15,6 +16,7 @@ interface ManageImportListsModalRowProps {
|
|||||||
name: string;
|
name: string;
|
||||||
rootFolderPath: string;
|
rootFolderPath: string;
|
||||||
qualityProfileId: number;
|
qualityProfileId: number;
|
||||||
|
minimumAvailability: string;
|
||||||
implementation: string;
|
implementation: string;
|
||||||
tags: number[];
|
tags: number[];
|
||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
@ -30,6 +32,7 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) {
|
|||||||
isSelected,
|
isSelected,
|
||||||
name,
|
name,
|
||||||
rootFolderPath,
|
rootFolderPath,
|
||||||
|
minimumAvailability,
|
||||||
qualityProfileId,
|
qualityProfileId,
|
||||||
implementation,
|
implementation,
|
||||||
enabled,
|
enabled,
|
||||||
@ -69,6 +72,10 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) {
|
|||||||
{qualityProfile?.name ?? translate('None')}
|
{qualityProfile?.name ?? translate('None')}
|
||||||
</TableRowCell>
|
</TableRowCell>
|
||||||
|
|
||||||
|
<TableRowCell className={styles.minimumAvailability}>
|
||||||
|
{translate(firstCharToUpper(minimumAvailability))}
|
||||||
|
</TableRowCell>
|
||||||
|
|
||||||
<TableRowCell className={styles.rootFolderPath}>
|
<TableRowCell className={styles.rootFolderPath}>
|
||||||
{rootFolderPath}
|
{rootFolderPath}
|
||||||
</TableRowCell>
|
</TableRowCell>
|
||||||
|
@ -15,6 +15,7 @@ interface ImportList extends ModelBase {
|
|||||||
enabled: boolean;
|
enabled: boolean;
|
||||||
enableAuto: boolean;
|
enableAuto: boolean;
|
||||||
qualityProfileId: number;
|
qualityProfileId: number;
|
||||||
|
minimumAvailability: string;
|
||||||
rootFolderPath: string;
|
rootFolderPath: string;
|
||||||
name: string;
|
name: string;
|
||||||
fields: Field[];
|
fields: Field[];
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using NzbDrone.Core.ImportLists;
|
using NzbDrone.Core.ImportLists;
|
||||||
|
using NzbDrone.Core.Movies;
|
||||||
|
|
||||||
namespace Radarr.Api.V3.ImportLists
|
namespace Radarr.Api.V3.ImportLists
|
||||||
{
|
{
|
||||||
@ -9,6 +10,7 @@ public class ImportListBulkResource : ProviderBulkResource<ImportListBulkResourc
|
|||||||
public bool? EnableAuto { get; set; }
|
public bool? EnableAuto { get; set; }
|
||||||
public string RootFolderPath { get; set; }
|
public string RootFolderPath { get; set; }
|
||||||
public int? QualityProfileId { get; set; }
|
public int? QualityProfileId { get; set; }
|
||||||
|
public MovieStatusType? MinimumAvailability { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ImportListBulkResourceMapper : ProviderBulkResourceMapper<ImportListBulkResource, ImportListDefinition>
|
public class ImportListBulkResourceMapper : ProviderBulkResourceMapper<ImportListBulkResource, ImportListDefinition>
|
||||||
@ -26,6 +28,7 @@ public override List<ImportListDefinition> UpdateModel(ImportListBulkResource re
|
|||||||
existing.EnableAuto = resource.EnableAuto ?? existing.EnableAuto;
|
existing.EnableAuto = resource.EnableAuto ?? existing.EnableAuto;
|
||||||
existing.RootFolderPath = resource.RootFolderPath ?? existing.RootFolderPath;
|
existing.RootFolderPath = resource.RootFolderPath ?? existing.RootFolderPath;
|
||||||
existing.QualityProfileId = resource.QualityProfileId ?? existing.QualityProfileId;
|
existing.QualityProfileId = resource.QualityProfileId ?? existing.QualityProfileId;
|
||||||
|
existing.MinimumAvailability = resource.MinimumAvailability ?? existing.MinimumAvailability;
|
||||||
});
|
});
|
||||||
|
|
||||||
return existingDefinitions;
|
return existingDefinitions;
|
||||||
|
Loading…
Reference in New Issue
Block a user