diff --git a/frontend/src/Activity/Queue/RemoveQueueItemModal.tsx b/frontend/src/Activity/Queue/RemoveQueueItemModal.tsx index 4348f818c..255c8a562 100644 --- a/frontend/src/Activity/Queue/RemoveQueueItemModal.tsx +++ b/frontend/src/Activity/Queue/RemoveQueueItemModal.tsx @@ -118,6 +118,7 @@ function RemoveQueueItemModal(props: RemoveQueueItemModalProps) { { key: 'blocklistAndSearch', value: translate('BlocklistAndSearch'), + isDisabled: isPending, hint: multipleSelected ? translate('BlocklistAndSearchMultipleHint') : translate('BlocklistAndSearchHint'), @@ -130,7 +131,7 @@ function RemoveQueueItemModal(props: RemoveQueueItemModalProps) { : translate('BlocklistOnlyHint'), }, ]; - }, [multipleSelected]); + }, [isPending, multipleSelected]); const handleRemovalMethodChange = useCallback( ({ value }: { value: RemovalMethod }) => { diff --git a/src/Sonarr.Api.V3/Queue/QueueController.cs b/src/Sonarr.Api.V3/Queue/QueueController.cs index 8884ef4a6..34622ad18 100644 --- a/src/Sonarr.Api.V3/Queue/QueueController.cs +++ b/src/Sonarr.Api.V3/Queue/QueueController.cs @@ -77,7 +77,7 @@ namespace Sonarr.Api.V3.Queue if (pendingRelease != null) { - Remove(pendingRelease); + Remove(pendingRelease, blocklist); return; } @@ -120,7 +120,7 @@ namespace Sonarr.Api.V3.Queue foreach (var pendingRelease in pendingToRemove.DistinctBy(p => p.Id)) { - Remove(pendingRelease); + Remove(pendingRelease, blocklist); } foreach (var trackedDownload in trackedToRemove.DistinctBy(t => t.DownloadItem.DownloadId)) @@ -286,9 +286,13 @@ namespace Sonarr.Api.V3.Queue } } - private void Remove(NzbDrone.Core.Queue.Queue pendingRelease) + private void Remove(NzbDrone.Core.Queue.Queue pendingRelease, bool blocklist) { - _blocklistService.Block(pendingRelease.RemoteEpisode, "Pending release manually blocklisted"); + if (blocklist) + { + _blocklistService.Block(pendingRelease.RemoteEpisode, "Pending release manually blocklisted"); + } + _pendingReleaseService.RemovePendingQueueItems(pendingRelease.Id); }