diff --git a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js index 6b946fec548a3af98f8c6b8ef90832c9f25af4a4..f4b9a4cfdd1c798837bc7e724f60175446e24160 100644 --- a/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js +++ b/packages/component-manuscript-manager/src/routes/fragmentsRecommendations/patch.js @@ -74,7 +74,7 @@ module.exports = models => async (req, res) => { if (!['pendingApproval', 'revisionRequested'].includes(collection.status)) collectionHelper.updateStatus({ newStatus: 'reviewCompleted' }) } - + await fragment.save() return res.status(200).json(recommendation) } catch (e) { const notFoundError = await services.handleNotFoundError(e, 'Item') diff --git a/packages/component-manuscript/src/components/ManuscriptDetails.js b/packages/component-manuscript/src/components/ManuscriptDetails.js index df5e50181ab2ca80665c94378130903321deed7e..5c8545b657c15853562e220dfe4b00babe969607 100644 --- a/packages/component-manuscript/src/components/ManuscriptDetails.js +++ b/packages/component-manuscript/src/components/ManuscriptDetails.js @@ -7,8 +7,12 @@ import { Authors, Files } from './' import { Expandable } from '../molecules/' const ManuscriptDetails = ({ - collection: { authors = [] }, - fragment: { conflicts = {}, files = {}, metadata: { abstract = '' } }, + fragment: { + files = {}, + authors = [], + conflicts = {}, + metadata: { abstract = '' }, + }, }) => ( <Root> <Expandable label="Details" startExpanded> diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index ea6b9532eb0b048a250ae750f0d4c6357c9faf44..5e7bd4c017e862900b89638464578577eefbfe9d 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -53,7 +53,7 @@ const ManuscriptLayout = ({ project={project} version={version} /> - <ManuscriptDetails collection={project} fragment={version} /> + <ManuscriptDetails fragment={version} /> <ReviewsAndReports project={project} version={version} /> {canSeeEditorialComments && editorialRecommendations.length > 0 && ( diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js index ed5e3885bbfad9c55e488500582ab05c8ed6ca66..f3aefdd957a6371e2e4b5d46f90fe900b20c85c6 100644 --- a/packages/component-manuscript/src/components/utils.js +++ b/packages/component-manuscript/src/components/utils.js @@ -1,5 +1,5 @@ import moment from 'moment' -import { get, find, capitalize, omit, isEmpty, isEqual, debounce } from 'lodash' +import { get, find, capitalize, omit, isEmpty, debounce } from 'lodash' import { actions } from 'pubsweet-client/src' import { change as changeForm } from 'redux-form' @@ -137,25 +137,23 @@ const onChange = ( values, dispatch, { project, version, createRecommendation, updateRecommendation }, - previousValues, ) => { const newValues = parseReviewRequest(values) - const prevValues = parseReviewRequest(previousValues) - if (!isEqual(newValues, prevValues)) { - dispatch(autosaveRequest()) - if (newValues.id) { - updateRecommendation(project.id, version.id, newValues) - .then(r => dispatch(autosaveSuccess(get(r, 'updatedOn')))) - .catch(e => dispatch(autosaveFailure(e))) - } else { - createRecommendation(project.id, version.id, newValues) - .then(r => { - dispatch(changeForm('reviewerReport', 'id', r.id)) - return dispatch(autosaveSuccess(get(r, 'updatedOn'))) - }) - .catch(e => dispatch(autosaveFailure(e))) - } + // if (!isEqual(newValues, prevValues)) { + dispatch(autosaveRequest()) + if (newValues.id) { + updateRecommendation(project.id, version.id, newValues) + .then(r => dispatch(autosaveSuccess(get(r, 'updatedOn')))) + .catch(e => dispatch(autosaveFailure(e))) + } else { + createRecommendation(project.id, version.id, newValues) + .then(r => { + dispatch(changeForm('reviewerReport', 'id', r.id)) + return dispatch(autosaveSuccess(get(r, 'updatedOn'))) + }) + .catch(e => dispatch(autosaveFailure(e))) } + // } } export const onReviewChange = debounce(onChange, 1000, { maxWait: 5000 }) @@ -183,7 +181,7 @@ export const onReviewSubmit = ( updateRecommendation(project.id, version.id, newValues) .then(r => dispatch(autosaveSuccess(get(r, 'updatedOn')))) .then(() => { - dispatch(actions.getFragments()) + dispatch(actions.getFragments({ id: project.id })) hideModal() }) }, diff --git a/packages/component-wizard/src/components/WizardFormStep.js b/packages/component-wizard/src/components/WizardFormStep.js index d5e71660176306c455f4cb3af9d443c9c8310df6..5579434a313269425ecd33382e621faf1ea44dd1 100644 --- a/packages/component-wizard/src/components/WizardFormStep.js +++ b/packages/component-wizard/src/components/WizardFormStep.js @@ -73,13 +73,19 @@ const submitFragmentRevision = ({ history, redirectPath = '/', }) => { - submitRevision(project.id, version.id).then(() => { - history.push(redirectPath, { - project: project.id, - customId: project.customId, - version: version.id, + submitRevision(project.id, version.id) + .then(() => { + history.push(redirectPath, { + project: project.id, + customId: project.customId, + version: version.id, + }) + }) + .catch(error => { + if (error.validationErrors) { + throw new SubmissionError() + } }) - }) } const onSubmit = ( diff --git a/packages/components-faraday/src/components/Dashboard/DashboardCard.js b/packages/components-faraday/src/components/Dashboard/DashboardCard.js index ae4c120f523173860f19fb00bb4352a05c9fb97e..7709aa3418c42aee34cc782d7231e91d97499a4f 100644 --- a/packages/components-faraday/src/components/Dashboard/DashboardCard.js +++ b/packages/components-faraday/src/components/Dashboard/DashboardCard.js @@ -143,7 +143,7 @@ const DashboardCard = ({ project.status !== 'draft' && ( <DetailsView> <Top> - <AuthorsWithTooltip authors={project.authors} /> + <AuthorsWithTooltip authors={version.authors} /> </Top> <Bottom> <LeftDetails flex={4}> diff --git a/packages/components-faraday/src/components/Files/Files.js b/packages/components-faraday/src/components/Files/Files.js index 4294b9198bb8f27f007f50a7141bca3c907d3e9e..3055f5a4f0c48093552b4ef43752181d413015f3 100644 --- a/packages/components-faraday/src/components/Files/Files.js +++ b/packages/components-faraday/src/components/Files/Files.js @@ -1,4 +1,4 @@ -import React from 'react' +import React, { Fragment } from 'react' import { th } from '@pubsweet/ui' import PropTypes from 'prop-types' import { get, isEqual } from 'lodash' @@ -6,6 +6,7 @@ import { connect } from 'react-redux' import styled from 'styled-components' import { withRouter } from 'react-router-dom' import { change as changeForm } from 'redux-form' +import { selectCurrentVersion } from 'xpub-selectors' import { compose, lifecycle, @@ -35,7 +36,7 @@ const Files = ({ isRevisionFlow, dropSortableFile, }) => ( - <div> + <Fragment> <Error show={error}> File error, please try again.</Error> <FileSection addFile={addFile('manuscripts')} @@ -89,12 +90,11 @@ const Files = ({ title="Response to reviewers" /> )} - </div> + </Fragment> ) export default compose( getContext({ - version: PropTypes.object, project: PropTypes.object, }), withRouter, @@ -102,6 +102,7 @@ export default compose( (state, { project, version }) => ({ error: getFileError(state), isFetching: getRequestStatus(state), + version: selectCurrentVersion(state, project), isRevisionFlow: isRevisionFlow(state, project, version), }), {