diff --git a/app/components/AdminPage.js b/app/components/AdminPage.js index cd3548780ecf395f8c82169cda14a8496f95a1bc..584ddc653e7956a5d000c5db4d9ab7d8ca48d137 100644 --- a/app/components/AdminPage.js +++ b/app/components/AdminPage.js @@ -138,7 +138,7 @@ const AdminPage = () => { : null } - if (currentUser) { + if (currentUser && process.env.INSTANCE_NAME === 'coko') { links.push({ link: homeLink, name: 'Dashboard', icon: 'home' }) } @@ -234,6 +234,14 @@ const AdminPage = () => { path={`${urlFrag}/admin/manuscripts`} redirectLink={redirectLink} /> + {process.env.INSTANCE_NAME === 'elife' && + <PrivateRoute + component={SubmitPage} + exact + path={`${urlFrag}/versions/:version/evaluation`} + redirectLink={redirectLink} + /> + } </Switch> <RolesUpdater /> </Root> diff --git a/app/components/component-manuscripts/src/Manuscript.js b/app/components/component-manuscripts/src/Manuscript.js index 32fc549d6330340701bb1612fc1c084a61debc29..dffb694d9db14ac0153cded0d76dc870616dfa12 100644 --- a/app/components/component-manuscripts/src/Manuscript.js +++ b/app/components/component-manuscripts/src/Manuscript.js @@ -20,6 +20,7 @@ import { } from './style' import { convertTimestampToDate } from '../../../shared/time-formatting' +import { articleStatuses } from '../../../globals' const DELETE_MANUSCRIPT = gql` mutation($id: ID!) { @@ -64,9 +65,16 @@ const User = ({ manuscriptId, manuscript, submitter }) => { )} </Cell> <LastCell> - <Action to={`${urlFrag}/versions/${manuscriptId}/decision`}> - Control - </Action> + {process.env.INSTANCE_NAME === 'elife' && [articleStatuses.submitted, articleStatuses.evaluated].includes(manuscript.status) && + <Action to={`${urlFrag}/versions/${manuscriptId}/evaluation`}> + Evaluation + </Action> + } + {process.env.INSTANCE_NAME === 'coko' && + <Action to={`${urlFrag}/versions/${manuscriptId}/decision`}> + Control + </Action> + } <Action to={`${urlFrag}/versions/${manuscriptId}/manuscript`}> View </Action> diff --git a/app/components/component-submit/src/components/FormTemplate.js b/app/components/component-submit/src/components/FormTemplate.js index f98350c1e28ba16f20c09a8d84be087e19564d0e..9df5e003ebf360420958d161bf10396985207674 100644 --- a/app/components/component-submit/src/components/FormTemplate.js +++ b/app/components/component-submit/src/components/FormTemplate.js @@ -18,6 +18,7 @@ import AuthorsInput from './AuthorsInput' import LinksInput from './LinksInput' import ValidatedFieldFormik from './ValidatedField' import Confirm from './Confirm' +import { articleStatuses } from '../../../../globals' const Intro = styled.div` font-style: italic; @@ -148,6 +149,7 @@ const FormTemplate = ({ submitSubmission, errors, validateForm, + match, }) => { const submitButton = text => ( <div> @@ -157,7 +159,7 @@ const FormTemplate = ({ // If there are errors, do a fake submit // to focus on the error - if (hasErrors) { + if (hasErrors || values.status === articleStatuses.evaluated || values.status === articleStatuses.submitted) { handleSubmit() } else { toggleConfirming() @@ -272,16 +274,35 @@ const FormTemplate = ({ </Section> ) : null} - {!['submitted', 'revise'].includes(values.status) && - form.haspopup === 'false' && ( - <Button onClick={() => handleSubmit()} primary type="submit"> - Submit your research object - </Button> - )} + {process.env.INSTANCE_NAME === 'coko' && + <> + {!['submitted', 'revise'].includes(values.status) && + form.haspopup === 'false' && ( + <Button onClick={() => handleSubmit()} primary type="submit"> + Submit your research object + </Button> + )} + + {!['submitted', 'revise'].includes(values.status) && + form.haspopup === 'true' && + submitButton('Submit your research object')} + </> + } + + {process.env.INSTANCE_NAME === 'elife' && + <> + {!['revise'].includes(values.status) && + form.haspopup === 'false' && ( + <Button onClick={() => handleSubmit()} primary type="submit"> + Submit your research object + </Button> + )} - {!['submitted', 'revise'].includes(values.status) && - form.haspopup === 'true' && - submitButton('Submit your research object')} + {!['revise'].includes(values.status) && + form.haspopup === 'true' && + submitButton(match.url.includes('/evaluation') ? 'Submit Evaluation' : 'Submit your research object')} + </> + } {values.status === 'revise' && submitButton('Submit your revision')} diff --git a/app/components/component-submit/src/components/Submit.js b/app/components/component-submit/src/components/Submit.js index c34bd75a76e90b9bd1874c4cb03613f348ef4e1a..9b435b6ef0ab4e16c8709d880f41b44be504f5e4 100644 --- a/app/components/component-submit/src/components/Submit.js +++ b/app/components/component-submit/src/components/Submit.js @@ -62,6 +62,7 @@ const Submit = ({ parent, onChange, onSubmit, + match, }) => { const decisionSections = [] @@ -82,7 +83,7 @@ const Submit = ({ const editorSection = addEditor(manuscript, 'Manuscript text') let decisionSection - if (['new', 'revising'].includes(manuscript.status)) { + if (['new', 'revising', 'submitted', 'evaluated'].includes(manuscript.status)) { Object.assign(submissionValues, JSON.parse(manuscript.submission)) const versionValues = { @@ -118,6 +119,7 @@ const Submit = ({ {...formProps} form={form} manuscript={manuscript} + match={match} /> )} </Formik> diff --git a/app/components/component-submit/src/components/SubmitPage.js b/app/components/component-submit/src/components/SubmitPage.js index f70beb89d3787c284fd46c64f1da839da220ccb9..92770a7452d9185392db212eeee188995ce113af 100644 --- a/app/components/component-submit/src/components/SubmitPage.js +++ b/app/components/component-submit/src/components/SubmitPage.js @@ -217,7 +217,7 @@ const SubmitPage = ({ match, history }) => { } const onSubmit = async versionId => { - const delta = { status: 'submitted' } + const delta = { status: match.url.includes('/evaluation') ? 'evaluated' : 'submitted' } await submit({ variables: { @@ -247,6 +247,7 @@ const SubmitPage = ({ match, history }) => { parent={manuscript} toggleConfirming={toggleConfirming} versions={versions} + match={match} /> ) } diff --git a/app/components/shared/Badge.js b/app/components/shared/Badge.js index dfbaca6b82c3bfd655f04c9134dd5ec7ec79c19c..eff96a77087c6226141576774a36a2a03e1e10e5 100644 --- a/app/components/shared/Badge.js +++ b/app/components/shared/Badge.js @@ -63,6 +63,7 @@ const label = (status, published) => { revising: 'Revising', invited: 'Invited', // reviewer status completed: 'Completed', // reviewer status + evaluated: 'evaluated', } if (isPublished) { diff --git a/app/globals.js b/app/globals.js index 27fc9489ae164c585d255838dffbf1e2c5e390c1..d0830dff44ce0984eb36de581fb12e38d7489227 100644 --- a/app/globals.js +++ b/app/globals.js @@ -83,3 +83,9 @@ export const HorizontalRule = styled(FlexRow)` margin: 0 16px; } ` + +export const articleStatuses = { + submitted: 'submitted', + evaluated: 'evaluated', + new: 'new' +}