Skip to content
Snippets Groups Projects
Commit cc7f97e3 authored by Tania Fecheta's avatar Tania Fecheta
Browse files

feat(manuscriptEicDecision): update modal message and modal buttons according to eic decision

parent d79a2de1
No related branches found
No related tags found
2 merge requests!110Sprint 21 Features,!92Hin 946
import React from 'react' import React from 'react'
import { get } from 'lodash' import { get, last } from 'lodash'
import { compose } from 'recompose' import { compose, withProps } from 'recompose'
import styled from 'styled-components' import styled from 'styled-components'
import { reduxForm } from 'redux-form' import { reduxForm } from 'redux-form'
import { th } from '@pubsweet/ui-toolkit' import { th } from '@pubsweet/ui-toolkit'
...@@ -19,12 +19,34 @@ import { ...@@ -19,12 +19,34 @@ import {
withFetching, withFetching,
} from '../' } from '../'
const eicDecisions = [
{
value: 'return-to-handling-editor',
label: 'Return to Handling Editor',
modalTitle: 'Return Manuscript',
modalSubtitle:
'A returning manuscript to Handling Editor decision is final',
},
{
value: 'publish',
label: 'Publish',
modalTitle: 'Publish Manuscript',
modalSubtitle: 'A publish decision is final',
},
{
value: 'reject',
label: 'Reject',
modalTitle: 'Reject Manuscript',
modalSubtitle: 'A rejection decision is final',
},
]
const ManuscriptEicDecision = ({ const ManuscriptEicDecision = ({
isFetching, isFetching,
formValues, formValues,
handleSubmit, handleSubmit,
messagesLabel, messagesLabel,
options = [], collection = {},
...rest ...rest
}) => ( }) => (
<ContextualBox label="Your Editorial Decision" {...rest}> <ContextualBox label="Your Editorial Decision" {...rest}>
...@@ -33,7 +55,16 @@ const ManuscriptEicDecision = ({ ...@@ -33,7 +55,16 @@ const ManuscriptEicDecision = ({
<ItemOverrideAlert flex={0} vertical> <ItemOverrideAlert flex={0} vertical>
<Label required>Decision</Label> <Label required>Decision</Label>
<ValidatedField <ValidatedField
component={input => <Menu {...input} options={options} />} component={input => (
<Menu
{...input}
options={
get(collection, 'status', 'submitted') === 'submitted'
? [last(eicDecisions)]
: eicDecisions
}
/>
)}
name="decision" name="decision"
validate={[required]} validate={[required]}
/> />
...@@ -71,15 +102,32 @@ export default compose( ...@@ -71,15 +102,32 @@ export default compose(
modalKey: 'eic-decision', modalKey: 'eic-decision',
modalComponent: MultiAction, modalComponent: MultiAction,
})), })),
withProps(({ formValues }) => ({
modalTitle: eicDecisions.find(
o => o.value === get(formValues, 'decision', 'publish'),
).modalTitle,
modalSubtitle: eicDecisions.find(
o => o.value === get(formValues, 'decision', 'publish'),
).modalSubtitle,
})),
reduxForm({ reduxForm({
form: 'eic-decision', form: 'eic-decision',
onSubmit: ( onSubmit: (
values, values,
dispatch, dispatch,
{ submitDecision, showModal, setFetching }, {
submitDecision,
showModal,
setFetching,
modalTitle,
confirmMessage,
modalSubtitle,
},
) => { ) => {
showModal({ showModal({
title: 'Are you sure you want to submit this decision?', title: `${modalTitle}?`,
confirmText: modalTitle,
subtitle: modalSubtitle,
onConfirm: modalProps => { onConfirm: modalProps => {
submitDecision(values, { ...modalProps, setFetching }) submitDecision(values, { ...modalProps, setFetching })
}, },
......
...@@ -20,7 +20,11 @@ const MultiAction = ({ ...@@ -20,7 +20,11 @@ const MultiAction = ({
<Root> <Root>
<IconButton icon="x" onClick={onClose} right={5} secondary top={5} /> <IconButton icon="x" onClick={onClose} right={5} secondary top={5} />
<H2>{title}</H2> <H2>{title}</H2>
{subtitle && <Text secondary>{subtitle}</Text>} {subtitle && (
<Text mb={1} secondary>
{subtitle}
</Text>
)}
{renderContent()} {renderContent()}
{modalError && ( {modalError && (
<Text error mt={1}> <Text error mt={1}>
......
import React, { Fragment } from 'react' import React, { Fragment } from 'react'
import styled from 'styled-components' import styled from 'styled-components'
import { isEmpty, get, last } from 'lodash' import { isEmpty, get } from 'lodash'
import { import {
Text, Text,
paddingHelper, paddingHelper,
...@@ -18,12 +18,6 @@ import ReviewerReportCard from './ReviewReportCard' ...@@ -18,12 +18,6 @@ import ReviewerReportCard from './ReviewReportCard'
import ReviewerReportForm from './ReviewerReportForm' import ReviewerReportForm from './ReviewerReportForm'
import EditorialCommentCard from './EditorialCommentCard' import EditorialCommentCard from './EditorialCommentCard'
const eicDecisions = [
{ value: 'return-to-handling-editor', label: 'Return to Handling Editor' },
{ value: 'publish', label: 'Publish' },
{ value: 'reject', label: 'Reject' },
]
const messagesLabel = { const messagesLabel = {
'return-to-handling-editor': 'Comments for Handling Editor', 'return-to-handling-editor': 'Comments for Handling Editor',
reject: 'Comments for Author', reject: 'Comments for Author',
...@@ -198,15 +192,11 @@ const ManuscriptLayout = ({ ...@@ -198,15 +192,11 @@ const ManuscriptLayout = ({
{get(currentUser, 'permissions.canMakeDecision', false) && ( {get(currentUser, 'permissions.canMakeDecision', false) && (
<ManuscriptEicDecision <ManuscriptEicDecision
collection={collection}
formValues={get(formValues, 'eicDecision')} formValues={get(formValues, 'eicDecision')}
highlight={editorialRecommendations.length > 0} highlight={editorialRecommendations.length > 0}
messagesLabel={messagesLabel} messagesLabel={messagesLabel}
mt={2} mt={2}
options={
get(collection, 'status', 'submitted') === 'submitted'
? [last(eicDecisions)]
: eicDecisions
}
submitDecision={createRecommendation} submitDecision={createRecommendation}
/> />
)} )}
......
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