Skip to content
Snippets Groups Projects
Commit 74965aac authored by Mihail Hagiu's avatar Mihail Hagiu
Browse files

fix(AuthorEmail): Merged with origin

parents 05aa9a29 29dc927d
No related branches found
No related tags found
4 merge requests!196S25 - EiC submit revision,!189S25,!180Hin 663 eic email to author,!177Hin 230 eic request revision
...@@ -270,17 +270,9 @@ export const getHERecommendation = (state, collectionId, fragmentId) => { ...@@ -270,17 +270,9 @@ export const getHERecommendation = (state, collectionId, fragmentId) => {
) )
} }
const canMakeDecisionStatuses = [
'submitted',
'pendingApproval',
'underReview',
'reviewCompleted',
]
export const canMakeDecision = (state, collection = {}) => { export const canMakeDecision = (state, collection = {}) => {
const status = get(collection, 'status', 'draft')
const isEIC = currentUserIs(state, 'adminEiC') const isEIC = currentUserIs(state, 'adminEiC')
return isEIC && canMakeDecisionStatuses.includes(status) return isEIC
} }
const collectionReviewerReports = state => const collectionReviewerReports = state =>
......
...@@ -33,6 +33,12 @@ const eicDecisions = [ ...@@ -33,6 +33,12 @@ const eicDecisions = [
modalTitle: 'Publish Manuscript', modalTitle: 'Publish Manuscript',
modalSubtitle: 'A publish decision is final', modalSubtitle: 'A publish decision is final',
}, },
{
value: 'revision',
label: 'Request Revision',
modalTitle: 'Request Revision',
modalSubtitle: 'A request revision decision is final',
},
{ {
value: 'reject', value: 'reject',
label: 'Reject', label: 'Reject',
...@@ -41,9 +47,17 @@ const eicDecisions = [ ...@@ -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 = ({ const ManuscriptEicDecision = ({
isFetching, status,
options,
decision,
formValues, formValues,
isFetching,
handleSubmit, handleSubmit,
messagesLabel, messagesLabel,
collection = {}, collection = {},
...@@ -59,32 +73,23 @@ const ManuscriptEicDecision = ({ ...@@ -59,32 +73,23 @@ const ManuscriptEicDecision = ({
<ItemOverrideAlert flex={0} vertical> <ItemOverrideAlert flex={0} vertical>
<Label required>Decision</Label> <Label required>Decision</Label>
<ValidatedField <ValidatedField
component={input => ( component={input => <Menu {...input} options={options} />}
<Menu
{...input}
options={
get(collection, 'status', 'submitted') !== 'pendingApproval'
? [last(eicDecisions)]
: eicDecisions
}
/>
)}
name="decision" name="decision"
validate={[required]} validate={[required]}
/> />
</ItemOverrideAlert> </ItemOverrideAlert>
</Row> </Row>
{get(formValues, 'decision') !== 'publish' && ( {decision !== 'publish' && (
<Row mt={2}> <Row mt={2}>
<Item vertical> <Item vertical>
<Label required> <Label required={decision !== 'reject'}>
{messagesLabel[get(formValues, 'decision', 'reject')]} {messagesLabel[get(formValues, 'decision', 'reject')]}
</Label> </Label>
<ValidatedField <ValidatedField
component={ValidatedTextArea} component={ValidatedTextArea}
name="message" name="message"
validate={[required]} validate={decision !== 'reject' ? [required] : undefined}
/> />
</Item> </Item>
</Row> </Row>
...@@ -106,13 +111,18 @@ export default compose( ...@@ -106,13 +111,18 @@ export default compose(
modalKey: 'eic-decision', modalKey: 'eic-decision',
modalComponent: MultiAction, modalComponent: MultiAction,
})), })),
withProps(({ formValues }) => ({ withProps(({ formValues, collection }) => ({
modalTitle: eicDecisions.find( modalTitle: eicDecisions.find(
o => o.value === get(formValues, 'decision', 'publish'), o => o.value === get(formValues, 'decision', 'publish'),
).modalTitle, ).modalTitle,
modalSubtitle: eicDecisions.find( modalSubtitle: eicDecisions.find(
o => o.value === get(formValues, 'decision', 'publish'), o => o.value === get(formValues, 'decision', 'publish'),
).modalSubtitle, ).modalSubtitle,
decision: get(formValues, 'decision'),
options: filterOptions(
eicDecisions,
get(collection, 'status', 'submitted'),
),
})), })),
reduxForm({ reduxForm({
form: 'eic-decision', form: 'eic-decision',
......
const { union } = require('lodash')
module.exports = { module.exports = {
execute: async ({ models, fragmentHelper, collectionHelper }) => { execute: async ({ models, TeamHelper, fragmentHelper, collectionHelper }) => {
const eicRequestToRevision = fragmentHelper.getLatestEiCRequestToRevision() const eicRequestToRevision = fragmentHelper.getLatestEiCRequestToRevision()
if (!eicRequestToRevision) { if (!eicRequestToRevision) {
throw new Error('No Editor in Chief request to revision has been found.') throw new Error('No Editor in Chief request to revision has been found.')
...@@ -11,6 +13,32 @@ module.exports = { ...@@ -11,6 +13,32 @@ module.exports = {
await fragmentHelper.removeRevision() await fragmentHelper.removeRevision()
const teamHelper = new TeamHelper({
TeamModel: models.Team,
fragmentId: newFragment.id,
})
const authorIds = newFragment.authors.map(auth => {
const { id } = auth
return id
})
let authorsTeam = await teamHelper.getTeam({
role: 'author',
objectType: 'fragment',
})
if (!authorsTeam) {
authorsTeam = await teamHelper.createTeam({
role: 'author',
members: authorIds,
objectType: 'fragment',
})
} else {
authorsTeam.members = union(authorsTeam.members, authorIds)
await authorsTeam.save()
}
await collectionHelper.updateStatus({ newStatus: 'submitted' }) await collectionHelper.updateStatus({ newStatus: 'submitted' })
newFragment.submitted = Date.now() newFragment.submitted = Date.now()
......
...@@ -24,6 +24,7 @@ import ReviewerReports from './ReviewerReports' ...@@ -24,6 +24,7 @@ import ReviewerReports from './ReviewerReports'
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',
revision: 'Comments for Author',
} }
const cannotViewReviewersDetails = ['revisionRequested', 'pendingApproval'] const cannotViewReviewersDetails = ['revisionRequested', 'pendingApproval']
......
...@@ -15,4 +15,8 @@ module.exports = [ ...@@ -15,4 +15,8 @@ module.exports = [
value: 'reject', value: 'reject',
label: 'Reject', label: 'Reject',
}, },
{
value: 'revision',
label: 'Revision',
},
] ]
...@@ -126,6 +126,7 @@ module.exports = { ...@@ -126,6 +126,7 @@ module.exports = {
'reject', 'reject',
'publish', 'publish',
'revise', 'revise',
'revision',
'major', 'major',
'minor', 'minor',
'return-to-handling-editor', '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