diff --git a/packages/component-faraday-ui/src/EditorialReportCard.js b/packages/component-faraday-ui/src/EditorialReportCard.js index a89ca77499af8c0d0a6b6ceff3b6b5af97c617d5..86df355e80e1e68c4a39fc75901083ad932b7fca 100644 --- a/packages/component-faraday-ui/src/EditorialReportCard.js +++ b/packages/component-faraday-ui/src/EditorialReportCard.js @@ -17,51 +17,55 @@ const EditorialReportCard = ({ recommendation, editorName, editorRole, + collection, report: { createdOn, reviewer }, -}) => ( - <Root> - <Row justify="space-between" mb={2}> - <Item vertical> - {editorRole === 'HE' ? ( - <Label mb={1 / 2}>Recommendation</Label> - ) : ( - <Label mb={1 / 2}>Decision</Label> - )} - <Text>{recommendation}</Text> - </Item> - - <Item justify="flex-end"> - {reviewer && ( - <Fragment> - <Text mr={1 / 2}>{editorName}</Text> - <Tag mr={2}>{editorRole}</Tag> - </Fragment> - )} - <DateParser timestamp={createdOn}> - {date => <Text>{date}</Text>} - </DateParser> - </Item> - </Row> - - {publicReport && ( - <Row mb={2}> +}) => + console.log('col', reviewer) || ( + <Root> + <Row justify="space-between" mb={2}> <Item vertical> - <Label mb={1 / 2}>{publicLabel}</Label> - <Text>{publicReport}</Text> + {editorRole === 'HE' ? ( + <Label mb={1 / 2}>Recommendation</Label> + ) : ( + <Label mb={1 / 2}>Decision</Label> + )} + <Text>{recommendation}</Text> </Item> - </Row> - )} - {privateReport && ( - <Row mb={2}> - <Item vertical> - <Label mb={1 / 2}>{privateLabel}</Label> - <Text>{privateReport}</Text> + <Item justify="flex-end"> + {reviewer && ( + <Fragment> + <Text mr={1 / 2}> + {editorName !== 'Assigned' ? editorName : ''} + </Text> + <Tag mr={2}>{editorRole}</Tag> + </Fragment> + )} + <DateParser timestamp={createdOn}> + {date => <Text>{date}</Text>} + </DateParser> </Item> </Row> - )} - </Root> -) + + {publicReport && ( + <Row mb={2}> + <Item vertical> + <Label mb={1 / 2}>{publicLabel}</Label> + <Text>{publicReport}</Text> + </Item> + </Row> + )} + + {privateReport && ( + <Row mb={2}> + <Item vertical> + <Label mb={1 / 2}>{privateLabel}</Label> + <Text>{privateReport}</Text> + </Item> + </Row> + )} + </Root> + ) export default compose( withHandlers({ @@ -71,12 +75,8 @@ export default compose( } return get(report, 'reviewer.editorInChief') ? 'EiC' : '' }, - getReviewerName: ({ report }) => () => - `${get(report, 'reviewer.firstName', '')} ${get( - report, - 'reviewer.lastName', - '', - )}`, + getEditorName: ({ collection }) => () => + `${get(collection, 'handlingEditor.name', '')}`, getRecommendationLabel: ({ report, journal: { recommendations = [] }, @@ -87,11 +87,11 @@ export default compose( ), }), withProps( - ({ report, getReviewerRole, getReviewerName, getRecommendationLabel }) => ({ + ({ report, getReviewerRole, getEditorName, getRecommendationLabel }) => ({ recommendation: getRecommendationLabel(), publicReport: getReportComments({ report, isPublic: true }), privateReport: getReportComments({ report, isPublic: false }), - editorName: getReviewerName(), + editorName: getEditorName(), editorRole: getReviewerRole(), }), ), diff --git a/packages/component-manuscript/src/components/EditorialCommentCard.js b/packages/component-manuscript/src/components/EditorialCommentCard.js index 366200e4fba723bc2c2a7431b4d19b39ea0501b9..f1efbc17760242aff648829f64a6fa27c3584afc 100644 --- a/packages/component-manuscript/src/components/EditorialCommentCard.js +++ b/packages/component-manuscript/src/components/EditorialCommentCard.js @@ -6,7 +6,13 @@ import { withFileDownload, } from 'pubsweet-component-faraday-ui' -const EditorialCommentCard = ({ journal, reports = [], toggle, expanded }) => ( +const EditorialCommentCard = ({ + journal, + reports = [], + toggle, + expanded, + collection, +}) => ( <ContextualBox expanded={expanded} label="Editorial Comments" @@ -16,6 +22,7 @@ const EditorialCommentCard = ({ journal, reports = [], toggle, expanded }) => ( > {reports.map(report => ( <EditorialReportCard + collection={collection} journal={journal} key={report.id} privateLabel="Message For Editorial Team" diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index ff41d40a2edd9265df38ea953e96dbdc7885e0d7..44414cf04113d8822ace002256b938b6cc2e46c8 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -98,6 +98,7 @@ const ManuscriptLayout = ({ {get(currentUser, 'permissions.canViewEditorialComments', true) && ( <EditorialCommentCard + collection={collection} expanded={heRecommendationExpanded} journal={journal} reports={editorialRecommendations} diff --git a/packages/xpub-faraday/config/authsome-helpers.js b/packages/xpub-faraday/config/authsome-helpers.js index c97f8b89a8f9acb1b7b626e5fc5b79636889bf65..0d990961263d0d0ff397c1deb7786c6b2e39b2a5 100644 --- a/packages/xpub-faraday/config/authsome-helpers.js +++ b/packages/xpub-faraday/config/authsome-helpers.js @@ -7,6 +7,7 @@ const statuses = config.get('statuses') const keysToOmit = ['email', 'id'] const publicStatusesPermissions = ['author', 'reviewer'] const authorAllowedStatuses = ['revisionRequested', 'rejected', 'accepted'] +const authorCanViewHENameStatuses = ['rejected', 'accepted'] const parseAuthorsData = (coll, matchingCollPerm) => { if (['reviewer'].includes(matchingCollPerm.permission)) { @@ -137,13 +138,13 @@ const filterAuthorRecommendations = (recommendations, status, isLast) => { return [] } -const stripeCollectionByRole = (coll = {}, role = '') => { +const stripeCollectionByRole = ({ collection = {}, role = '' }) => { if (role === 'author') { - const { handlingEditor } = coll + const { handlingEditor } = collection - if (!authorAllowedStatuses.includes(coll.status)) { + if (!authorCanViewHENameStatuses.includes(collection.status)) { return { - ...coll, + ...collection, handlingEditor: handlingEditor && handlingEditor.isAccepted && { ...omit(handlingEditor, keysToOmit), @@ -152,7 +153,7 @@ const stripeCollectionByRole = (coll = {}, role = '') => { } } } - return coll + return collection } const stripeFragmentByRole = ({ @@ -246,7 +247,7 @@ const getCollections = async ({ user, models }) => { collection.visibleStatus = get(statuses, `${status}.${up.role}.label`) const stripedColl = stripeCollectionByRole({ - coll: collection, + collection, role: up.role, }) @@ -262,7 +263,7 @@ const getCollections = async ({ user, models }) => { }) } - return { ...stripedColl.coll, visibleStatus } + return { ...stripedColl, visibleStatus } }), )).filter(Boolean) } diff --git a/packages/xpub-faraday/config/authsome-mode.js b/packages/xpub-faraday/config/authsome-mode.js index bf1c2ed4786f543a3777af550122385b83bb21c7..e480663e8f3c835340f53bf92251dd3a679d04d8 100644 --- a/packages/xpub-faraday/config/authsome-mode.js +++ b/packages/xpub-faraday/config/authsome-mode.js @@ -96,10 +96,10 @@ async function applyAuthenticatedUserPolicy(user, operation, object, context) { ) } - const parsedCollection = helpers.stripeCollectionByRole( + const parsedCollection = helpers.stripeCollectionByRole({ collection, role, - ) + }) return { ...parsedCollection,