From 1ff73e3aab0d503f70085b649b91ce66cd75ec6c Mon Sep 17 00:00:00 2001 From: Thomas Loubiou Date: Fri, 2 Feb 2024 23:01:50 +0100 Subject: [PATCH] feat: allow requests managers to delete media files --- .../RequestList/RequestItem/index.tsx | 39 +++++++++++++++---- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/src/components/RequestList/RequestItem/index.tsx b/src/components/RequestList/RequestItem/index.tsx index a4ad2a442..7d742ed8a 100644 --- a/src/components/RequestList/RequestItem/index.tsx +++ b/src/components/RequestList/RequestItem/index.tsx @@ -41,6 +41,7 @@ const messages = defineMessages({ tmdbid: 'TMDB ID', tvdbid: 'TheTVDB ID', unknowntitle: 'Unknown Title', + removearr: 'Remove from {arr}', }); const isMovie = (movie: MovieDetails | TvDetails): movie is MovieDetails => { @@ -320,6 +321,14 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { revalidateList(); }; + const deleteMediaFile = async () => { + if (request.media) { + await axios.delete(`/api/v1/media/${request.media.id}/file`); + await axios.delete(`/api/v1/media/${request.media.id}`); + revalidateList(); + } + }; + const retryRequest = async () => { setRetrying(true); @@ -622,14 +631,28 @@ const RequestItem = ({ request, revalidateList }: RequestItemProps) => { )} {requestData.status !== MediaRequestStatus.PENDING && hasPermission(Permission.MANAGE_REQUESTS) && ( - deleteRequest()} - confirmText={intl.formatMessage(globalMessages.areyousure)} - className="w-full" - > - - {intl.formatMessage(messages.deleterequest)} - + <> + deleteRequest()} + confirmText={intl.formatMessage(globalMessages.areyousure)} + className="w-full" + > + + {intl.formatMessage(messages.deleterequest)} + + deleteMediaFile()} + confirmText={intl.formatMessage(globalMessages.areyousure)} + className="w-full" + > + + + {intl.formatMessage(messages.removearr, { + arr: request.type === 'movie' ? 'Radarr' : 'Sonarr', + })} + + + )} {requestData.status === MediaRequestStatus.PENDING && hasPermission(Permission.MANAGE_REQUESTS) && (