diff --git a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.js deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.tsx b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.tsx index 2b06cc2e78..106fd4909e 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/EditImportListModalContent.tsx @@ -78,6 +78,7 @@ function EditImportListModalContent({ qualityProfileId, searchOnAdd, tags, + retroApplyTags, fields, } = item; @@ -256,6 +257,18 @@ function EditImportListModalContent({ /> + + {translate('RadarrRetroactiveApply')} + + + + {fields?.length ? (
{fields.map((field) => { diff --git a/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx b/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx index 74b1662207..9b7773eccb 100644 --- a/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx +++ b/frontend/src/Settings/ImportLists/ImportLists/Manage/Edit/ManageImportListsEditModalContent.tsx @@ -18,6 +18,7 @@ interface SavePayload { qualityProfileId?: number; minimumAvailability?: string; rootFolderPath?: string; + retroApplyTags?: boolean; } interface ManageImportListsEditModalContentProps { @@ -62,7 +63,8 @@ function ManageImportListsEditModalContent( ); const [minimumAvailability, setMinimumAvailability] = useState(NO_CHANGE); const [rootFolderPath, setRootFolderPath] = useState(NO_CHANGE); - + const [retroApplyTags, setRetroApplyTags] = useState(NO_CHANGE); + const save = useCallback(() => { let hasChanges = false; const payload: SavePayload = {}; @@ -91,6 +93,10 @@ function ManageImportListsEditModalContent( hasChanges = true; payload.rootFolderPath = rootFolderPath; } + if (retroApplyTags !== NO_CHANGE) { + hasChanges = true; + payload.retroApplyTags = retroApplyTags === 'enabled'; + } if (hasChanges) { onSavePress(payload); @@ -103,6 +109,7 @@ function ManageImportListsEditModalContent( qualityProfileId, minimumAvailability, rootFolderPath, + retroApplyTags, onSavePress, onModalClose, ]); @@ -124,6 +131,9 @@ function ManageImportListsEditModalContent( case 'rootFolderPath': setRootFolderPath(value as string); break; + case 'retroApplyTags': + setRetroApplyTags(value as string); + break; default: console.warn(`EditImportListModalContent Unknown Input: '${name}'`); } @@ -199,6 +209,18 @@ function ManageImportListsEditModalContent( onChange={onInputChange} /> + + + {translate('RetroApplyTags')} + + + diff --git a/src/NzbDrone.Core/Datastore/Migration/241_add_retroapply_to_importlists.cs b/src/NzbDrone.Core/Datastore/Migration/243_add_retroapply_to_importlists.cs similarity index 95% rename from src/NzbDrone.Core/Datastore/Migration/241_add_retroapply_to_importlists.cs rename to src/NzbDrone.Core/Datastore/Migration/243_add_retroapply_to_importlists.cs index e92decbc0b..1cfaeefd70 100644 --- a/src/NzbDrone.Core/Datastore/Migration/241_add_retroapply_to_importlists.cs +++ b/src/NzbDrone.Core/Datastore/Migration/243_add_retroapply_to_importlists.cs @@ -3,7 +3,7 @@ namespace NzbDrone.Core.Datastore.Migration; -[Migration(241)] +[Migration(243)] public class add_retroapply_to_importlists : NzbDroneMigrationBase { protected override void MainDbUpgrade() diff --git a/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs b/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs index c7633785e9..cacd841f5d 100644 --- a/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs +++ b/src/Radarr.Api.V3/ImportLists/ImportListBulkResource.cs @@ -11,6 +11,7 @@ public class ImportListBulkResource : ProviderBulkResource @@ -29,6 +30,7 @@ public override List UpdateModel(ImportListBulkResource re existing.RootFolderPath = resource.RootFolderPath ?? existing.RootFolderPath; existing.QualityProfileId = resource.QualityProfileId ?? existing.QualityProfileId; existing.MinimumAvailability = resource.MinimumAvailability ?? existing.MinimumAvailability; + existing.RetroApplyTags = resource.RetroApplyTags ?? existing.RetroApplyTags; }); return existingDefinitions; diff --git a/src/Radarr.Api.V3/ImportLists/ImportListResource.cs b/src/Radarr.Api.V3/ImportLists/ImportListResource.cs index 7093f08eaf..ced81ecb62 100644 --- a/src/Radarr.Api.V3/ImportLists/ImportListResource.cs +++ b/src/Radarr.Api.V3/ImportLists/ImportListResource.cs @@ -16,6 +16,7 @@ public class ImportListResource : ProviderResource public ImportListType ListType { get; set; } public int ListOrder { get; set; } public TimeSpan MinRefreshInterval { get; set; } + public bool RetroApplyTags { get; set; } } public class ImportListResourceMapper : ProviderResourceMapper @@ -39,6 +40,7 @@ public override ImportListResource ToResource(ImportListDefinition definition) resource.ListType = definition.ListType; resource.ListOrder = (int)definition.ListType; resource.MinRefreshInterval = definition.MinRefreshInterval; + resource.RetroApplyTags = definition.RetroApplyTags; return resource; } @@ -61,6 +63,7 @@ public override ImportListDefinition ToModel(ImportListResource resource, Import definition.MinimumAvailability = resource.MinimumAvailability; definition.ListType = resource.ListType; definition.MinRefreshInterval = resource.MinRefreshInterval; + definition.RetroApplyTags = resource.RetroApplyTags; return definition; } diff --git a/src/Radarr.Api.V3/ProviderResource.cs b/src/Radarr.Api.V3/ProviderResource.cs index c5e8a1cd6f..2af43b9f38 100644 --- a/src/Radarr.Api.V3/ProviderResource.cs +++ b/src/Radarr.Api.V3/ProviderResource.cs @@ -16,7 +16,6 @@ public class ProviderResource : RestResource public string InfoLink { get; set; } public ProviderMessage Message { get; set; } public HashSet Tags { get; set; } - public List Presets { get; set; } }