Skip to content
Snippets Groups Projects
Commit 3acbbbb8 authored by Bogdan Cochior's avatar Bogdan Cochior
Browse files

fix(reviewerDetails): fix eic not seeing the reports

parent 94789720
No related branches found
No related tags found
2 merge requests!110Sprint 21 Features,!62fix(reviewerDetails): fix eic not seeing the reports
......@@ -28,18 +28,34 @@ export const currentUserIs = ({ currentUser: { user } }, role) => {
}
}
const cannotInviteReviewersStatuses = ['draft', 'rejected', 'published']
const canInviteReviewersStatuses = [
'heAssigned',
'reviewersInvited',
'underReview',
'reviewCompleted',
]
export const canInviteReviewers = (state, collection) => {
if (
cannotInviteReviewersStatuses.includes(get(collection, 'status', 'draft'))
)
if (!canInviteReviewersStatuses.includes(get(collection, 'status', 'draft')))
return false
const user = selectCurrentUser(state)
const isStaff = currentUserIs(state, 'isAdmin')
const isAdmin = currentUserIs(state, 'isAdmin')
const { isAccepted, id: heId } = get(collection, 'handlingEditor', {})
return isAccepted && (user.id === heId || isStaff)
return isAccepted && (user.id === heId || isAdmin)
}
const cannotViewReviewersDetails = [
'draft',
'technicalChecks',
'submitted',
'heInvited',
]
export const canViewReviewersDetails = (state, collection = {}) => {
if (cannotViewReviewersDetails.includes(get(collection, 'status', 'draft'))) {
return false
}
return canViewReports(state, collection.id)
}
export const getUserToken = ({ currentUser }) =>
......
......@@ -25,31 +25,34 @@ const ReviewerDetails = ({
fragment,
invitations,
previewFile,
currentUser,
downloadFile,
canSeeReports,
canInviteReviewers,
onInviteReviewer,
onResendReviewerInvite,
onRevokeReviewerInvite,
}) => (
<ContextualBox
label="Reviewer details"
rightChildren={<ReviewerBreakdown fitContent fragment={fragment} mr={1} />}
startExpanded
>
<Tabs>
{({ selectedTab, changeTab }) => (
<Fragment>
<TabsHeader>
<TabButton
ml={1}
mr={1}
onClick={() => changeTab(0)}
selected={selectedTab === 0}
>
<H4>Reviewer Details</H4>
</TabButton>
{canSeeReports && (
canViewReviewersDetails,
}) =>
canViewReviewersDetails ? (
<ContextualBox
label="Reviewer Details & Reports"
rightChildren={
<ReviewerBreakdown fitContent fragment={fragment} mr={1} />
}
startExpanded
>
<Tabs>
{({ selectedTab, changeTab }) => (
<Fragment>
<TabsHeader>
<TabButton
ml={1}
mr={1}
onClick={() => changeTab(0)}
selected={selectedTab === 0}
>
<H4>Reviewer Details</H4>
</TabButton>
<TabButton
ml={1}
mr={1}
......@@ -59,24 +62,24 @@ const ReviewerDetails = ({
<H4>Reviewer Reports</H4>
<Tag mr={1}>{reports.length}</Tag>
</TabButton>
)}
</TabsHeader>
<TabContent>
{selectedTab === 0 && (
<Fragment>
<InviteReviewers
modalKey="invite-reviewers"
onInvite={onInviteReviewer}
/>
<ReviewersTable
invitations={invitations}
onResendReviewerInvite={onResendReviewerInvite}
onRevokeReviewerInvite={onRevokeReviewerInvite}
/>
</Fragment>
)}
{canSeeReports &&
selectedTab === 1 && (
</TabsHeader>
<TabContent>
{selectedTab === 0 && (
<Fragment>
{canInviteReviewers && (
<InviteReviewers
modalKey="invite-reviewers"
onInvite={onInviteReviewer}
/>
)}
<ReviewersTable
invitations={invitations}
onResendReviewerInvite={onResendReviewerInvite}
onRevokeReviewerInvite={onRevokeReviewerInvite}
/>
</Fragment>
)}
{selectedTab === 1 && (
<Fragment>
{reports.length === 0 && (
<Text align="center">No reports submitted yet.</Text>
......@@ -94,12 +97,12 @@ const ReviewerDetails = ({
))}
</Fragment>
)}
</TabContent>
</Fragment>
)}
</Tabs>
</ContextualBox>
)
</TabContent>
</Fragment>
)}
</Tabs>
</ContextualBox>
) : null
export default compose(
withFilePreview,
......@@ -113,8 +116,11 @@ export default compose(
reports: reviewerReports.filter(r => r.submittedOn),
})),
withProps(({ currentUser }) => ({
canSeeReports:
get(currentUser, 'isEIC', false) || get(currentUser, 'isHE', false),
canInviteReviewers: get(currentUser, 'permissions.canInviteReviewers'),
canViewReviewersDetails: get(
currentUser,
'permissions.canViewReviewersDetails',
),
})),
)(ReviewerDetails)
......
......@@ -94,7 +94,7 @@ const ManuscriptLayout = ({
getSignedUrl={getSignedUrl}
/>
{get(currentUser, 'permisions.canViewReports', true) &&
{get(currentUser, 'permissions.canViewReports', true) &&
!!editorialRecommendations.length && (
<EditorialCommentCard
journal={journal}
......@@ -170,7 +170,7 @@ const ManuscriptLayout = ({
/>
)}
{get(currentUser, 'permissions.canInviteReviewers', false) && (
{get(currentUser, 'permissions.canViewReviewersDetails', false) && (
<ReviewerDetails
currentUser={currentUser}
fragment={fragment}
......
......@@ -46,6 +46,7 @@ import {
pendingHEInvitation,
currentUserIsReviewer,
parseCollectionDetails,
canViewReviewersDetails,
pendingReviewerInvitation,
canOverrideTechnicalChecks,
getOwnPendingRecommendation,
......@@ -150,6 +151,7 @@ export default compose(
canMakeRevision: canMakeRevision(state, collection, fragment),
canMakeDecision: canMakeDecision(state, collection, fragment),
canEditManuscript: canEditManuscript(state, collection, fragment),
canViewReviewersDetails: canViewReviewersDetails(state, collection),
canOverrideTechChecks: canOverrideTechnicalChecks(state, collection),
},
},
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment