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; }
}