fix: set editRequest attribute as necessary, allow users to edit their own pending requests, and show 'View Request' button on series pages (#1446)
* fix: set editRequest attribute for RequestModal * fix: remove now-unneeded conditional * fix(ui): only show 'View Request' for user's own requests if they don't have MANAGE_REQUESTS perm * fix(ui): show edit button on request list for own requests & 'View Request' button on series pages * fix(ui): do not show 'Request More' if user already has a pending request * fix: address PR comments * fix(lang): edit usercreatedfaileexisting string & generate translation key * fix: users should always be able to view/edit their own requests even if their perms have changed also fixed capitalization of 'Signing In...' string
This commit is contained in:
@@ -29,6 +29,11 @@ const messages = defineMessages({
|
||||
requestSuccess: '<strong>{title}</strong> requested successfully!',
|
||||
requesttitle: 'Request {title}',
|
||||
request4ktitle: 'Request {title} in 4K',
|
||||
edit: 'Edit Request',
|
||||
cancel: 'Cancel Request',
|
||||
pendingrequest: 'Pending Request for {title}',
|
||||
pending4krequest: 'Pending 4K Request for {title}',
|
||||
requestfrom: "{username}'s request is pending approval.",
|
||||
requestseasons:
|
||||
'Request {seasonCount} {seasonCount, plural, one {Season} other {Seasons}}',
|
||||
requestall: 'Request All Seasons',
|
||||
@@ -43,6 +48,7 @@ const messages = defineMessages({
|
||||
requestcancelled: 'Request for <strong>{title}</strong> canceled.',
|
||||
autoapproval: 'Automatic Approval',
|
||||
requesterror: 'Something went wrong while submitting the request.',
|
||||
pendingapproval: 'Your request is pending approval.',
|
||||
});
|
||||
|
||||
interface RequestModalProps extends React.HTMLAttributes<HTMLDivElement> {
|
||||
@@ -342,6 +348,8 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
|
||||
return seasonRequest;
|
||||
};
|
||||
|
||||
const isOwner = editRequest && editRequest.requestedBy.id === user?.id;
|
||||
|
||||
return !data?.externalIds.tvdbId && searchModal.show ? (
|
||||
<SearchByNameModal
|
||||
tvdbId={tvdbId}
|
||||
@@ -362,12 +370,20 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
|
||||
onCancel={tvdbId ? () => setSearchModal({ show: true }) : onCancel}
|
||||
onOk={() => (editRequest ? updateRequest() : sendRequest())}
|
||||
title={intl.formatMessage(
|
||||
is4k ? messages.request4ktitle : messages.requesttitle,
|
||||
editRequest
|
||||
? is4k
|
||||
? messages.pending4krequest
|
||||
: messages.pendingrequest
|
||||
: is4k
|
||||
? messages.request4ktitle
|
||||
: messages.requesttitle,
|
||||
{ title: data?.name }
|
||||
)}
|
||||
okText={
|
||||
editRequest && selectedSeasons.length === 0
|
||||
? 'Cancel Request'
|
||||
editRequest
|
||||
? selectedSeasons.length === 0
|
||||
? intl.formatMessage(messages.cancel)
|
||||
: intl.formatMessage(messages.edit)
|
||||
: getAllRequestedSeasons().length >= getAllSeasons().length
|
||||
? intl.formatMessage(messages.alreadyrequested)
|
||||
: !settings.currentSettings.partialRequestsEnabled
|
||||
@@ -397,12 +413,21 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
|
||||
: `primary`
|
||||
}
|
||||
cancelText={
|
||||
tvdbId
|
||||
editRequest
|
||||
? intl.formatMessage(globalMessages.close)
|
||||
: tvdbId
|
||||
? intl.formatMessage(globalMessages.back)
|
||||
: intl.formatMessage(globalMessages.cancel)
|
||||
}
|
||||
iconSvg={<DownloadIcon className="w-6 h-6" />}
|
||||
>
|
||||
{editRequest
|
||||
? isOwner
|
||||
? intl.formatMessage(messages.pendingapproval)
|
||||
: intl.formatMessage(messages.requestfrom, {
|
||||
username: editRequest?.requestedBy.displayName,
|
||||
})
|
||||
: null}
|
||||
{hasPermission(
|
||||
[
|
||||
Permission.MANAGE_REQUESTS,
|
||||
|
||||
Reference in New Issue
Block a user