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

Merge branch 'hin-restore-he-rec' into 'develop'

Hin restore he rec

See merge request !84
parents 92e3ee38 6f9468a8
No related branches found
No related tags found
2 merge requests!110Sprint 21 Features,!84Hin restore he rec
...@@ -4,12 +4,9 @@ const Tabs = ({ items, selectedTab, changeTab, children }) => ...@@ -4,12 +4,9 @@ const Tabs = ({ items, selectedTab, changeTab, children }) =>
children({ selectedTab, changeTab }) children({ selectedTab, changeTab })
export default compose( export default compose(
withStateHandlers( withStateHandlers(({ selectedTab = 0 }) => ({ selectedTab }), {
{ selectedTab: 0 }, changeTab: () => selectedTab => ({
{ selectedTab,
changeTab: () => selectedTab => ({ }),
selectedTab, }),
}),
},
),
)(Tabs) )(Tabs)
...@@ -20,10 +20,30 @@ import { ...@@ -20,10 +20,30 @@ import {
} from 'pubsweet-component-faraday-ui/src' } from 'pubsweet-component-faraday-ui/src'
const options = [ const options = [
{ value: 'publish', label: 'Publish' }, {
{ value: 'reject', label: 'Reject' }, value: 'publish',
{ value: 'minor', label: 'Request Minor Revision' }, label: 'Publish',
{ value: 'major', label: 'Request Major Revision' }, message: 'Recommend Manuscript for Publishing',
button: 'Submit Recommendation',
},
{
value: 'reject',
label: 'Reject',
message: 'Recommend Manuscript for Rejection',
button: 'Submit Recommendation',
},
{
value: 'minor',
label: 'Request Minor Revision',
message: 'Request Minor Revision',
button: 'Request Revision',
},
{
value: 'major',
label: 'Request Major Revision',
message: 'Request Major Revision',
button: 'Request Revision',
},
] ]
const parseFormValues = ({ recommendation, ...rest }) => { const parseFormValues = ({ recommendation, ...rest }) => {
...@@ -68,17 +88,15 @@ const HERecommendation = ({ ...@@ -68,17 +88,15 @@ const HERecommendation = ({
</ItemOverrideAlert> </ItemOverrideAlert>
</Row> </Row>
{get(formValues, 'recommendation') === 'publish' || {get(formValues, 'recommendation') === 'minor' ||
get(formValues, 'recommendation') === 'reject' ? ( get(formValues, 'recommendation') === 'major' ? (
<Row mt={2}> <Row mt={2}>
<ItemOverrideAlert vertical> <ResponsiveItem mr={1} vertical>
<Label required>Message for Author</Label> <Label>
<ValidatedField Message for Author <Text secondary>Optional</Text>
component={Textarea} </Label>
name="public" <ValidatedField component={Textarea} name="public" />
validate={[required]} </ResponsiveItem>
/>
</ItemOverrideAlert>
</Row> </Row>
) : ( ) : (
<ResponsiveRow mt={2}> <ResponsiveRow mt={2}>
...@@ -100,7 +118,11 @@ const HERecommendation = ({ ...@@ -100,7 +118,11 @@ const HERecommendation = ({
<Row justify="flex-end" mt={2}> <Row justify="flex-end" mt={2}>
<Button onClick={handleSubmit} primary size="medium"> <Button onClick={handleSubmit} primary size="medium">
Submit recommendation {
options.find(
o => o.value === get(formValues, 'recommendation', 'publish'),
).button
}
</Button> </Button>
</Row> </Row>
</Root> </Root>
...@@ -116,17 +138,31 @@ export default compose( ...@@ -116,17 +138,31 @@ export default compose(
withProps(({ formValues }) => ({ withProps(({ formValues }) => ({
modalTitle: options.find( modalTitle: options.find(
o => o.value === get(formValues, 'recommendation', 'publish'), o => o.value === get(formValues, 'recommendation', 'publish'),
).label, ).message,
confirmMessage: options.find(
o => o.value === get(formValues, 'recommendation', 'publish'),
).button,
})), })),
reduxForm({ reduxForm({
form: 'HERecommendation', form: 'HERecommendation',
onSubmit: ( onSubmit: (
values, values,
dispatch, dispatch,
{ onRecommendationSubmit, showModal, setFetching, modalTitle }, {
onRecommendationSubmit,
showModal,
setFetching,
modalTitle,
confirmMessage,
},
) => { ) => {
showModal({ showModal({
title: `${modalTitle}?`, title: `${modalTitle}?`,
confirmText:
confirmMessage === 'Submit Recommendation'
? 'Submit'
: confirmMessage,
onConfirm: props => { onConfirm: props => {
onRecommendationSubmit(parseFormValues(values), { onRecommendationSubmit(parseFormValues(values), {
...props, ...props,
......
...@@ -21,7 +21,7 @@ import { ...@@ -21,7 +21,7 @@ import {
const ReviewerDetails = ({ const ReviewerDetails = ({
journal, journal,
reports, reports = [],
fragment, fragment,
invitations, invitations,
previewFile, previewFile,
...@@ -47,7 +47,7 @@ const ReviewerDetails = ({ ...@@ -47,7 +47,7 @@ const ReviewerDetails = ({
toggle={toggle} toggle={toggle}
{...rest} {...rest}
> >
<Tabs> <Tabs selectedTab={reports.length ? 1 : 0}>
{({ selectedTab, changeTab }) => ( {({ selectedTab, changeTab }) => (
<Fragment> <Fragment>
<TabsHeader> <TabsHeader>
......
...@@ -181,15 +181,17 @@ const ManuscriptLayout = ({ ...@@ -181,15 +181,17 @@ const ManuscriptLayout = ({
/> />
)} )}
{get(currentUser, 'permissions.canMakeHERecommendation', false) && ( {get(currentUser, 'permissions.canMakeHERecommendation', false) &&
<HERecommendation (!invitationsWithReviewers.length ||
formValues={get(formValues, 'editorialRecommendation', {})} reviewerRecommendations.length > 0) && (
hasReviewerReports={reviewerRecommendations.length > 0} <HERecommendation
highlight={reviewerRecommendations.length > 0} formValues={get(formValues, 'editorialRecommendation', {})}
modalKey="heRecommendation" hasReviewerReports={reviewerRecommendations.length > 0}
onRecommendationSubmit={onEditorialRecommendation} highlight={reviewerRecommendations.length > 0}
/> modalKey="heRecommendation"
)} onRecommendationSubmit={onEditorialRecommendation}
/>
)}
{get(currentUser, 'permissions.canMakeDecision', false) && ( {get(currentUser, 'permissions.canMakeDecision', false) && (
<ManuscriptEicDecision <ManuscriptEicDecision
......
...@@ -170,9 +170,7 @@ export default compose( ...@@ -170,9 +170,7 @@ export default compose(
eicDecision: getFormValues('eic-decision')(state), eicDecision: getFormValues('eic-decision')(state),
reviewerReport: getFormValues('reviewerReport')(state), reviewerReport: getFormValues('reviewerReport')(state),
responseToInvitation: getFormValues('answer-invitation')(state), responseToInvitation: getFormValues('answer-invitation')(state),
editorialRecommendation: getFormValues('editorialRecommendation')( editorialRecommendation: getFormValues('HERecommendation')(state),
state,
),
}, },
invitationsWithReviewers: getInvitationsWithReviewersForFragment( invitationsWithReviewers: getInvitationsWithReviewersForFragment(
state, state,
......
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