diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx index 417cfb781..37fbc03d8 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx @@ -15,6 +15,7 @@ interface SavePayload { enabled?: boolean; enableAuto?: boolean; qualityProfileId?: number; + minimumAvailability?: string; rootFolderPath?: string; } @@ -58,6 +59,7 @@ function ManageImportListsEditModalContent( const [qualityProfileId, setQualityProfileId] = useState( NO_CHANGE ); + const [minimumAvailability, setMinimumAvailability] = useState(NO_CHANGE); const [rootFolderPath, setRootFolderPath] = useState(NO_CHANGE); const save = useCallback(() => { @@ -79,6 +81,11 @@ function ManageImportListsEditModalContent( payload.qualityProfileId = qualityProfileId as number; } + if (minimumAvailability !== NO_CHANGE) { + hasChanges = true; + payload.minimumAvailability = minimumAvailability as string; + } + if (rootFolderPath !== NO_CHANGE) { hasChanges = true; payload.rootFolderPath = rootFolderPath; @@ -93,6 +100,7 @@ function ManageImportListsEditModalContent( enabled, enableAuto, qualityProfileId, + minimumAvailability, rootFolderPath, onSavePress, onModalClose, @@ -110,6 +118,9 @@ function ManageImportListsEditModalContent( case 'qualityProfileId': setQualityProfileId(value); break; + case 'minimumAvailability': + setMinimumAvailability(value); + break; case 'rootFolderPath': setRootFolderPath(value); break; @@ -164,6 +175,19 @@ function ManageImportListsEditModalContent( /> + + {translate('MinimumAvailability')} + + + + {translate('RootFolder')} diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModal.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModal.tsx index 67a029d85..ffe295ade 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModal.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModal.tsx @@ -1,5 +1,6 @@ import React from 'react'; import Modal from 'Components/Modal/Modal'; +import { sizes } from 'Helpers/Props'; import ManageImportListsModalContent from './ManageImportListsModalContent'; interface ManageImportListsModalProps { @@ -11,7 +12,7 @@ function ManageImportListsModal(props: ManageImportListsModalProps) { const { isOpen, onModalClose } = props; return ( - + ); diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx index 377117768..baf73730f 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalContent.tsx @@ -52,6 +52,12 @@ const COLUMNS = [ isSortable: true, isVisible: true, }, + { + name: 'minimumAvailability', + label: () => translate('MinimumAvailability'), + isSortable: true, + isVisible: true, + }, { name: 'rootFolderPath', label: () => translate('RootFolder'), diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css index 3c0c27415..7045ed925 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css @@ -2,6 +2,7 @@ .tags, .enabled, .enableAuto, +.minimumAvailability, .qualityProfileId, .rootFolderPath, .implementation { diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css.d.ts b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css.d.ts index e0766c1c1..c6cb99a37 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css.d.ts +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.css.d.ts @@ -4,6 +4,7 @@ interface CssExports { 'enableAuto': string; 'enabled': string; 'implementation': string; + 'minimumAvailability': string; 'name': string; 'qualityProfileId': string; 'rootFolderPath': string; diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx index ac0729283..829ed94c4 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/ManageImportListsModalRow.tsx @@ -7,6 +7,7 @@ import TableRow from 'Components/Table/TableRow'; import TagListConnector from 'Components/TagListConnector'; import { createQualityProfileSelectorForHook } from 'Store/Selectors/createQualityProfileSelector'; import { SelectStateInputProps } from 'typings/props'; +import firstCharToUpper from 'Utilities/String/firstCharToUpper'; import translate from 'Utilities/String/translate'; import styles from './ManageImportListsModalRow.css'; @@ -15,6 +16,7 @@ interface ManageImportListsModalRowProps { name: string; rootFolderPath: string; qualityProfileId: number; + minimumAvailability: string; implementation: string; tags: number[]; enabled: boolean; @@ -30,6 +32,7 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) { isSelected, name, rootFolderPath, + minimumAvailability, qualityProfileId, implementation, enabled, @@ -69,6 +72,10 @@ function ManageImportListsModalRow(props: ManageImportListsModalRowProps) { {qualityProfile?.name ?? translate('None')} + + {translate(firstCharToUpper(minimumAvailability))} + + {rootFolderPath} diff --git a/frontend/src/typings/ImportList.ts b/frontend/src/typings/ImportList.ts index 3a53de8bc..849b20be0 100644 --- a/frontend/src/typings/ImportList.ts +++ b/frontend/src/typings/ImportList.ts @@ -15,6 +15,7 @@ interface ImportList extends ModelBase { enabled: boolean; enableAuto: boolean; qualityProfileId: number; + minimumAvailability: string; rootFolderPath: string; name: string; fields: Field[]; diff --git a/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs b/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs index e13a1e385..c7633785e 100644 --- a/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs +++ b/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using NzbDrone.Core.ImportLists; +using NzbDrone.Core.Movies; namespace Radarr.Api.V3.ImportLists { @@ -9,6 +10,7 @@ public class ImportListBulkResource : ProviderBulkResource @@ -26,6 +28,7 @@ public override List UpdateModel(ImportListBulkResource re existing.EnableAuto = resource.EnableAuto ?? existing.EnableAuto; existing.RootFolderPath = resource.RootFolderPath ?? existing.RootFolderPath; existing.QualityProfileId = resource.QualityProfileId ?? existing.QualityProfileId; + existing.MinimumAvailability = resource.MinimumAvailability ?? existing.MinimumAvailability; }); return existingDefinitions;