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

feat(manuscriptEicDecision): add Request Revision in the eic decisions dropdown

parent 328a85c6
No related branches found
No related tags found
3 merge requests!196S25 - EiC submit revision,!189S25,!177Hin 230 eic request revision
......@@ -270,17 +270,9 @@ export const getHERecommendation = (state, collectionId, fragmentId) => {
)
}
const canMakeDecisionStatuses = [
'submitted',
'pendingApproval',
'underReview',
'reviewCompleted',
]
export const canMakeDecision = (state, collection = {}) => {
const status = get(collection, 'status', 'draft')
const isEIC = currentUserIs(state, 'adminEiC')
return isEIC && canMakeDecisionStatuses.includes(status)
return isEIC
}
const collectionReviewerReports = state =>
......
......@@ -33,6 +33,12 @@ const eicDecisions = [
modalTitle: 'Publish Manuscript',
modalSubtitle: 'A publish decision is final',
},
{
value: 'revision',
label: 'Request Revision',
modalTitle: 'Request Revision',
modalSubtitle: 'A request revision decision is final',
},
{
value: 'reject',
label: 'Reject',
......@@ -41,9 +47,17 @@ const eicDecisions = [
},
]
const filterOptions = (eicDecisions, status) => {
if (status === 'submitted') return eicDecisions.slice(2)
if (status === 'pendingApproval') return eicDecisions
return [last(eicDecisions)]
}
const ManuscriptEicDecision = ({
isFetching,
status,
options,
decision,
formValues,
isFetching,
handleSubmit,
messagesLabel,
collection = {},
......@@ -59,32 +73,23 @@ const ManuscriptEicDecision = ({
<ItemOverrideAlert flex={0} vertical>
<Label required>Decision</Label>
<ValidatedField
component={input => (
<Menu
{...input}
options={
get(collection, 'status', 'submitted') !== 'pendingApproval'
? [last(eicDecisions)]
: eicDecisions
}
/>
)}
component={input => <Menu {...input} options={options} />}
name="decision"
validate={[required]}
/>
</ItemOverrideAlert>
</Row>
{get(formValues, 'decision') !== 'publish' && (
{decision !== 'publish' && (
<Row mt={2}>
<Item vertical>
<Label required>
<Label required={decision !== 'reject'}>
{messagesLabel[get(formValues, 'decision', 'reject')]}
</Label>
<ValidatedField
component={ValidatedTextArea}
name="message"
validate={[required]}
validate={decision !== 'reject' ? [required] : undefined}
/>
</Item>
</Row>
......@@ -106,13 +111,18 @@ export default compose(
modalKey: 'eic-decision',
modalComponent: MultiAction,
})),
withProps(({ formValues }) => ({
withProps(({ formValues, collection }) => ({
modalTitle: eicDecisions.find(
o => o.value === get(formValues, 'decision', 'publish'),
).modalTitle,
modalSubtitle: eicDecisions.find(
o => o.value === get(formValues, 'decision', 'publish'),
).modalSubtitle,
decision: get(formValues, 'decision'),
options: filterOptions(
eicDecisions,
get(collection, 'status', 'submitted'),
),
})),
reduxForm({
form: 'eic-decision',
......
......@@ -24,6 +24,7 @@ import ReviewerReports from './ReviewerReports'
const messagesLabel = {
'return-to-handling-editor': 'Comments for Handling Editor',
reject: 'Comments for Author',
revision: 'Comments for Author',
}
const cannotViewReviewersDetails = ['revisionRequested', 'pendingApproval']
......
......@@ -15,4 +15,8 @@ module.exports = [
value: 'reject',
label: 'Reject',
},
{
value: 'revision',
label: 'Revision',
},
]
......@@ -126,6 +126,7 @@ module.exports = {
'reject',
'publish',
'revise',
'revision',
'major',
'minor',
'return-to-handling-editor',
......
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