Skip to content

Commit

Permalink
feat(ui): suggested changes
Browse files Browse the repository at this point in the history
  • Loading branch information
danshilm committed Oct 11, 2021
1 parent bf8a572 commit b8a43d5
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 31 deletions.
43 changes: 26 additions & 17 deletions src/components/RequestModal/MovieRequestModal.tsx
Expand Up @@ -23,15 +23,14 @@ const messages = defineMessages({
requesttitle: 'Request {title}',
request4ktitle: 'Request {title} in 4K',
edit: 'Edit Request',
editAndApprove: 'Edit & Approve Request',
approve: 'Approve Request',
cancel: 'Cancel Request',
pendingrequest: 'Pending Request for {title}',
pending4krequest: 'Pending 4K Request for {title}',
requestfrom: "{username}'s request is pending approval.",
errorediting: 'Something went wrong while editing the request.',
requestedited: 'Request for <strong>{title}</strong> edited successfully!',
requestEditedAndApproved:
'Request for <strong>{title}</strong> edited and approved successfully!',
requestApproved: 'Request for <strong>{title}</strong> approved!',
requesterror: 'Something went wrong while submitting the request.',
pendingapproval: 'Your request is pending approval.',
});
Expand Down Expand Up @@ -159,7 +158,7 @@ const MovieRequestModal: React.FC<RequestModalProps> = ({
}
};

const updateRequest = async (alsoAcceptRequest = false) => {
const updateRequest = async (alsoApproveRequest = false) => {
setIsUpdating(true);

try {
Expand All @@ -172,15 +171,15 @@ const MovieRequestModal: React.FC<RequestModalProps> = ({
tags: requestOverrides?.tags,
});

if (alsoAcceptRequest) {
if (alsoApproveRequest) {
await axios.post(`/api/v1/request/${editRequest?.id}/approve`);
}

addToast(
<span>
{intl.formatMessage(
alsoAcceptRequest
? messages.requestEditedAndApproved
alsoApproveRequest
? messages.requestApproved
: messages.requestedited,
{
title: data?.title,
Expand Down Expand Up @@ -211,8 +210,6 @@ const MovieRequestModal: React.FC<RequestModalProps> = ({

if (editRequest) {
const isOwner = editRequest.requestedBy.id === user?.id;
const canManageRequests = hasPermission(Permission.MANAGE_REQUESTS);
const canEditRequests = hasPermission(Permission.REQUEST_ADVANCED);

return (
<Modal
Expand All @@ -224,31 +221,43 @@ const MovieRequestModal: React.FC<RequestModalProps> = ({
{ title: data?.title }
)}
onOk={() =>
canManageRequests
hasPermission(Permission.MANAGE_REQUESTS)
? updateRequest(true)
: canEditRequests
: hasPermission(Permission.REQUEST_ADVANCED)
? updateRequest()
: cancelRequest()
}
okDisabled={isUpdating}
okText={
canManageRequests
? intl.formatMessage(messages.editAndApprove)
: canEditRequests
hasPermission(Permission.MANAGE_REQUESTS)
? intl.formatMessage(messages.approve)
: hasPermission(Permission.REQUEST_ADVANCED)
? intl.formatMessage(messages.edit)
: intl.formatMessage(messages.cancel)
}
okButtonType={
canManageRequests ? 'success' : canEditRequests ? 'primary' : 'danger'
hasPermission(Permission.MANAGE_REQUESTS)
? 'success'
: hasPermission(Permission.REQUEST_ADVANCED)
? 'primary'
: 'danger'
}
onSecondary={
isOwner && (canManageRequests || canEditRequests)
isOwner &&
hasPermission(
[Permission.REQUEST_ADVANCED, Permission.MANAGE_REQUESTS],
{ type: 'or' }
)
? () => cancelRequest()
: undefined
}
secondaryDisabled={isUpdating}
secondaryText={
isOwner && (canManageRequests || canEditRequests)
isOwner &&
hasPermission(
[Permission.REQUEST_ADVANCED, Permission.MANAGE_REQUESTS],
{ type: 'or' }
)
? intl.formatMessage(messages.cancel)
: undefined
}
Expand Down
22 changes: 10 additions & 12 deletions src/components/RequestModal/TvRequestModal.tsx
Expand Up @@ -30,7 +30,7 @@ const messages = defineMessages({
requesttitle: 'Request {title}',
request4ktitle: 'Request {title} in 4K',
edit: 'Edit Request',
editAndApprove: 'Edit & Approve Request',
approve: 'Approve Request',
cancel: 'Cancel Request',
pendingrequest: 'Pending Request for {title}',
pending4krequest: 'Pending 4K Request for {title}',
Expand All @@ -46,8 +46,7 @@ const messages = defineMessages({
extras: 'Extras',
errorediting: 'Something went wrong while editing the request.',
requestedited: 'Request for <strong>{title}</strong> edited successfully!',
requestEditedAndApproved:
'Request for <strong>{title}</strong> edited and approved successfully!',
requestApproved: 'Request for <strong>{title}</strong> approved!',
requestcancelled: 'Request for <strong>{title}</strong> canceled.',
autoapproval: 'Automatic Approval',
requesterror: 'Something went wrong while submitting the request.',
Expand Down Expand Up @@ -99,7 +98,7 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
selectedSeasons.length +
(editRequest?.seasons ?? []).length;

const updateRequest = async (alsoAcceptRequest = false) => {
const updateRequest = async (alsoApproveRequest = false) => {
if (!editRequest) {
return;
}
Expand All @@ -121,7 +120,7 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
seasons: selectedSeasons,
});

if (alsoAcceptRequest) {
if (alsoApproveRequest) {
await axios.post(`/api/v1/request/${editRequest.id}/approve`);
}
} else {
Expand All @@ -132,8 +131,8 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
<span>
{selectedSeasons.length > 0
? intl.formatMessage(
alsoAcceptRequest
? messages.requestEditedAndApproved
alsoApproveRequest
? messages.requestApproved
: messages.requestedited,
{
title: data?.name,
Expand Down Expand Up @@ -361,7 +360,6 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
};

const isOwner = editRequest && editRequest.requestedBy.id === user?.id;
const canManageRequests = hasPermission(Permission.MANAGE_REQUESTS);

return !data?.externalIds.tvdbId && searchModal.show ? (
<SearchByNameModal
Expand All @@ -383,7 +381,7 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
onCancel={tvdbId ? () => setSearchModal({ show: true }) : onCancel}
onOk={() =>
editRequest
? canManageRequests
? hasPermission(Permission.MANAGE_REQUESTS)
? updateRequest(true)
: updateRequest()
: sendRequest()
Expand All @@ -402,8 +400,8 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
editRequest
? selectedSeasons.length === 0
? intl.formatMessage(messages.cancel)
: canManageRequests
? intl.formatMessage(messages.editAndApprove)
: hasPermission(Permission.MANAGE_REQUESTS)
? intl.formatMessage(messages.approve)
: intl.formatMessage(messages.edit)
: getAllRequestedSeasons().length >= getAllSeasons().length
? intl.formatMessage(messages.alreadyrequested)
Expand Down Expand Up @@ -431,7 +429,7 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
? settings.currentSettings.partialRequestsEnabled &&
selectedSeasons.length === 0
? 'danger'
: canManageRequests
: hasPermission(Permission.MANAGE_REQUESTS)
? 'success'
: 'primary'
: 'primary'
Expand Down
4 changes: 2 additions & 2 deletions src/i18n/locale/en.json
Expand Up @@ -223,19 +223,19 @@
"components.RequestModal.SearchByNameModal.nosummary": "No summary for this title was found.",
"components.RequestModal.SearchByNameModal.notvdbiddescription": "We couldn't automatically match your request. Please select the correct match from the list below.",
"components.RequestModal.alreadyrequested": "Already Requested",
"components.RequestModal.approve": "Approve Request",
"components.RequestModal.autoapproval": "Automatic Approval",
"components.RequestModal.cancel": "Cancel Request",
"components.RequestModal.edit": "Edit Request",
"components.RequestModal.editAndApprove": "Edit & Approve Request",
"components.RequestModal.errorediting": "Something went wrong while editing the request.",
"components.RequestModal.extras": "Extras",
"components.RequestModal.numberofepisodes": "# of Episodes",
"components.RequestModal.pending4krequest": "Pending 4K Request for {title}",
"components.RequestModal.pendingapproval": "Your request is pending approval.",
"components.RequestModal.pendingrequest": "Pending Request for {title}",
"components.RequestModal.request4ktitle": "Request {title} in 4K",
"components.RequestModal.requestApproved": "Request for <strong>{title}</strong> approved!",
"components.RequestModal.requestCancel": "Request for <strong>{title}</strong> canceled.",
"components.RequestModal.requestEditedAndApproved": "Request for <strong>{title}</strong> edited and approved successfully!",
"components.RequestModal.requestSuccess": "<strong>{title}</strong> requested successfully!",
"components.RequestModal.requestadmin": "This request will be approved automatically.",
"components.RequestModal.requestall": "Request All Seasons",
Expand Down

0 comments on commit b8a43d5

Please sign in to comment.