Skip to content
Snippets Groups Projects
Commit 299bbec0 authored by Iosif Boanca's avatar Iosif Boanca
Browse files

HIN-1006 conextual box added

parent 039f781f
No related branches found
No related tags found
1 merge request!96Hin 1006
......@@ -61,6 +61,22 @@ export const canViewReviewersDetails = (state, collection = {}) => {
return canViewReports(state, collection.id)
}
const authorCannotViewReportsDetails = ['submitted', 'rejected']
export const authorCanViewReportsDetails = (state, collection = {}) => {
if (
authorCannotViewReportsDetails.includes(get(collection, 'status', 'draft'))
) {
return false
}
return authorCanViewReports(state, collection.id)
}
export const authorCanViewReports = (state, collectionId) => {
const isAuthor = currentUserIs(state, 'author')
return isAuthor
}
const canHeViewEditorialCommentsStatuses = [
'revisionRequested',
'rejected',
......@@ -73,8 +89,6 @@ export const canHeViewEditorialComments = (state, collection = {}) => {
return isHE && canHeViewEditorialCommentsStatuses.includes(status)
}
//authorcanviewreviewerreports(state,fragmentid)
const canEICViewEditorialCommentsStatuses = ['rejected', 'accepted', 'inQA']
export const canEICViewEditorialComments = (state, collection = {}) => {
const isEIC = currentUserIs(state, 'adminEiC')
......
......@@ -39,99 +39,97 @@ const ReviewerDetails = ({
expanded,
highlight,
canViewReviewersDetails,
authorCanViewReportsDetails,
...rest
}) =>
canViewReviewersDetails ? (
<ContextualBox
expanded={expanded}
highlight={highlight}
label="Reviewer Details & Reports"
rightChildren={
<ReviewerBreakdown fitContent fragment={fragment} mr={1} />
}
toggle={toggle}
{...rest}
>
<Tabs selectedTab={reports.length ? 1 : 0}>
{({ selectedTab, changeTab }) => (
<Fragment>
<TabsHeader>
}) => (
<ContextualBox
expanded={expanded}
highlight={highlight}
label="Reviewer Details & Reports"
rightChildren={<ReviewerBreakdown fitContent fragment={fragment} mr={1} />}
toggle={toggle}
{...rest}
>
<Tabs selectedTab={reports.length ? 1 : 0}>
{({ selectedTab, changeTab }) => (
<Fragment>
<TabsHeader>
<TabButton
ml={1}
mr={1}
onClick={() => changeTab(0)}
selected={selectedTab === 0}
>
<H4>Reviewer Details</H4>
</TabButton>
{canInviteReviewers && (
<TabButton
ml={1}
mr={1}
onClick={() => changeTab(0)}
selected={selectedTab === 0}
onClick={() => changeTab(2)}
selected={selectedTab === 2}
>
<H4>Reviewer Details</H4>
<H4>Reviewer Suggestions</H4>
</TabButton>
{canInviteReviewers && (
<TabButton
ml={1}
mr={1}
onClick={() => changeTab(2)}
selected={selectedTab === 2}
>
<H4>Reviewer Suggestions</H4>
</TabButton>
)}
<TabButton
ml={1}
mr={1}
onClick={() => changeTab(1)}
selected={selectedTab === 1}
>
<H4>Reviewer Reports</H4>
<Tag mr={1}>{reports.length}</Tag>
</TabButton>
</TabsHeader>
<TabContent>
{selectedTab === 0 && (
<Fragment>
{canInviteReviewers && (
<InviteReviewers
modalKey="invite-reviewers"
onInvite={onInviteReviewer}
/>
)}
<ReviewersTable
invitations={invitations}
onResendReviewerInvite={onResendReviewerInvite}
onRevokeReviewerInvite={onRevokeReviewerInvite}
)}
<TabButton
ml={1}
mr={1}
onClick={() => changeTab(1)}
selected={selectedTab === 1}
>
<H4>Reviewer Reports</H4>
<Tag mr={1}>{reports.length}</Tag>
</TabButton>
</TabsHeader>
<TabContent>
{selectedTab === 0 && (
<Fragment>
{canInviteReviewers && (
<InviteReviewers
modalKey="invite-reviewers"
onInvite={onInviteReviewer}
/>
</Fragment>
)}
{selectedTab === 2 && (
<PublonsTable
onInvite={onInvitePublonReviewer}
publonsError={fetchingError}
publonsFetching={isFetching}
reviewers={publonReviewers}
)}
<ReviewersTable
invitations={invitations}
onResendReviewerInvite={onResendReviewerInvite}
onRevokeReviewerInvite={onRevokeReviewerInvite}
/>
)}
{selectedTab === 1 && (
<Fragment>
{reports.length === 0 && (
<Text align="center">No reports submitted yet.</Text>
)}
{reports.map((report, index) => (
<ReviewerReport
journal={journal}
key={report.id}
onDownload={downloadFile}
onPreview={previewFile}
report={report}
reviewerIndex={index + 1}
showOwner
/>
))}
</Fragment>
)}
</TabContent>
</Fragment>
)}
</Tabs>
</ContextualBox>
) : null
</Fragment>
)}
{selectedTab === 2 && (
<PublonsTable
onInvite={onInvitePublonReviewer}
publonsError={fetchingError}
publonsFetching={isFetching}
reviewers={publonReviewers}
/>
)}
{selectedTab === 1 && (
<Fragment>
{reports.length === 0 && (
<Text align="center">No reports submitted yet.</Text>
)}
{reports.map((report, index) => (
<ReviewerReport
journal={journal}
key={report.id}
onDownload={downloadFile}
onPreview={previewFile}
report={report}
reviewerIndex={index + 1}
showOwner
/>
))}
</Fragment>
)}
</TabContent>
</Fragment>
)}
</Tabs>
</ContextualBox>
)
export default compose(
withFilePreview,
......
......@@ -5,6 +5,7 @@ import {
Text,
paddingHelper,
ReviewerDetails,
AuthorReviews,
HERecommendation,
ManuscriptHeader,
ManuscriptAssignHE,
......@@ -186,6 +187,14 @@ const ManuscriptLayout = ({
/>
)}
{get(currentUser, 'permissions.authorCanViewReportsDetails', false) && (
<AuthorReviews
currentUser={currentUser}
journal={journal}
reports={reviewerReports}
/>
)}
{get(currentUser, 'permissions.canMakeHERecommendation', false) &&
(!invitationsWithReviewers.length ||
reviewerRecommendations.length > 0) && (
......
......@@ -52,6 +52,7 @@ import {
canViewEditorialComments,
pendingReviewerInvitation,
canOverrideTechnicalChecks,
authorCanViewReportsDetails,
getOwnPendingRecommendation,
getOwnSubmittedRecommendation,
getFragmentReviewerRecommendations,
......@@ -178,6 +179,10 @@ export default compose(
canMakeDecision: canMakeDecision(state, collection, fragment),
canEditManuscript: canEditManuscript(state, collection, fragment),
canViewReviewersDetails: canViewReviewersDetails(state, collection),
authorCanViewReportsDetails: authorCanViewReportsDetails(
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