diff --git a/packages/component-manuscript/src/components/Files.js b/packages/component-manuscript/src/components/Files.js index 100f0563445db1c8838b207f0c91cf81f1893fa0..7311a7801a3f268634a29c122bf7e5b9c5405bfb 100644 --- a/packages/component-manuscript/src/components/Files.js +++ b/packages/component-manuscript/src/components/Files.js @@ -5,8 +5,6 @@ import { th } from '@pubsweet/ui' import { FileItem } from 'pubsweet-components-faraday/src/components/Files' const Files = ({ - previewFile, - downloadFile, files: { manuscripts = [], coverLetter = [], supplementary = [] }, }) => ( <Root> @@ -17,14 +15,7 @@ const Files = ({ <div /> </Header> {manuscripts.map(file => ( - <FileItem - compact - id={file.id} - key={file.id} - {...file} - downloadFile={downloadFile} - previewFile={previewFile} - /> + <FileItem compact id={file.id} key={file.id} {...file} /> ))} </Fragment> )} @@ -35,14 +26,7 @@ const Files = ({ <div /> </Header> {supplementary.map(file => ( - <FileItem - compact - id={file.id} - key={file.id} - {...file} - downloadFile={downloadFile} - previewFile={previewFile} - /> + <FileItem compact id={file.id} key={file.id} {...file} /> ))} </Fragment> )} @@ -53,14 +37,7 @@ const Files = ({ <div /> </Header> {coverLetter.map(file => ( - <FileItem - compact - id={file.id} - key={file.id} - {...file} - downloadFile={downloadFile} - previewFile={previewFile} - /> + <FileItem compact id={file.id} key={file.id} {...file} /> ))} </Fragment> )} diff --git a/packages/component-manuscript/src/components/ManuscriptDetails.js b/packages/component-manuscript/src/components/ManuscriptDetails.js index b6e26a84fddc6d5ad282c2355f0cd5246caa61bd..b439f1efd5a769dffb52a8082214ac53823f0df3 100644 --- a/packages/component-manuscript/src/components/ManuscriptDetails.js +++ b/packages/component-manuscript/src/components/ManuscriptDetails.js @@ -7,8 +7,6 @@ import { Authors, Files } from './' import Expandable from '../molecules/Expandable' const ManuscriptDetails = ({ - previewFile, - downloadFile, collection: { authors = [] }, fragment: { conflicts = {}, files = {}, metadata: { abstract = '' } }, }) => ( @@ -31,11 +29,7 @@ const ManuscriptDetails = ({ )} {!isEmpty(files) && ( <Expandable label="FILES"> - <Files - downloadFile={downloadFile} - files={files} - previewFile={previewFile} - /> + <Files files={files} /> </Expandable> )} </Expandable> diff --git a/packages/component-manuscript/src/components/ManuscriptLayout.js b/packages/component-manuscript/src/components/ManuscriptLayout.js index 811a048eb410ac16e12fdc3d0ccefef11efd675a..312a61ad8d4d862baf927c2b0abee1405d8dc623 100644 --- a/packages/component-manuscript/src/components/ManuscriptLayout.js +++ b/packages/component-manuscript/src/components/ManuscriptLayout.js @@ -20,16 +20,14 @@ import { } from './' const ManuscriptLayout = ({ - currentUser, - currentUserIs, - editorInChief, - updateManuscript, project, version, journal, - previewFile, - downloadFile, history, + currentUser, + currentUserIs, + editorInChief, + updateManuscript, }) => ( <Root> <Container flex={3}> @@ -46,12 +44,7 @@ const ManuscriptLayout = ({ </RightDetails> </Header> <ManuscriptHeader journal={journal} project={project} version={version} /> - <ManuscriptDetails - collection={project} - downloadFile={downloadFile} - fragment={version} - previewFile={previewFile} - /> + <ManuscriptDetails collection={project} fragment={version} /> <ReviewsAndReports currentUserIs={currentUserIs} project={project} diff --git a/packages/component-manuscript/src/components/ManuscriptPage.js b/packages/component-manuscript/src/components/ManuscriptPage.js index 7b130779b4b168398c47d0545b740975ef8cb53d..61760e51a03f6a48854781d3dd509e0a2201ebea 100644 --- a/packages/component-manuscript/src/components/ManuscriptPage.js +++ b/packages/component-manuscript/src/components/ManuscriptPage.js @@ -64,13 +64,6 @@ export default compose( id: version.id, ...data, }), - previewFile: ({ getSignedUrl }) => fileId => e => { - e.preventDefault() - getSignedUrl(fileId).then(({ signedUrl }) => { - const windowReference = window.open() - windowReference.location = signedUrl - }) - }, downloadFile: ({ getSignedUrl }) => (fileId, fileName) => e => { e.preventDefault() getSignedUrl(fileId).then(({ signedUrl }) => { diff --git a/packages/component-manuscript/src/components/ManuscriptVersion.js b/packages/component-manuscript/src/components/ManuscriptVersion.js index ddad835f7ccda0f60b9f15923105b039f3151d40..2ecebdcd8a4a4804f89d632273270a9233a4e353 100644 --- a/packages/component-manuscript/src/components/ManuscriptVersion.js +++ b/packages/component-manuscript/src/components/ManuscriptVersion.js @@ -8,7 +8,7 @@ import { withRouter } from 'react-router-dom' import { parseVersionOptions } from './utils' -const ManuscriptVersion = ({ project, fragments, history, match }) => ( +const ManuscriptVersion = ({ project, fragments = [], history, match }) => ( <Menu inline onChange={v => diff --git a/packages/component-manuscript/src/components/ReviewerReportForm.js b/packages/component-manuscript/src/components/ReviewerReportForm.js index 3f8fe374cb496a6363c9657bc576a1a51f2ec3ad..547c85f9fb2ddb6ac37f8a41a31ca8797d25363f 100644 --- a/packages/component-manuscript/src/components/ReviewerReportForm.js +++ b/packages/component-manuscript/src/components/ReviewerReportForm.js @@ -1,8 +1,18 @@ import React, { Fragment } from 'react' +import { isEmpty } from 'lodash' import { connect } from 'react-redux' import { required } from 'xpub-validators' +import { withJournal } from 'xpub-journal' import styled, { css } from 'styled-components' -import { th, Menu, ValidatedField, Icon, Button, ErrorText } from '@pubsweet/ui' +import { + th, + Menu, + ValidatedField, + Icon, + Button, + ErrorText, + Spinner, +} from '@pubsweet/ui' import { compose, withHandlers, withProps } from 'recompose' import { reduxForm, @@ -16,6 +26,8 @@ import { uploadFile, deleteFile, getSignedUrl, + getRequestStatus, + getFileError, } from 'pubsweet-components-faraday/src/redux/files' import { FileItem, @@ -41,35 +53,19 @@ import { const guidelinesLink = 'https://about.hindawi.com/authors/peer-review-at-hindawi/' -const options = [ - { - value: 'publish', - label: 'Publish unaltered', - }, - { - value: 'major', - label: 'Consider after major revision', - }, - { - value: 'minor', - label: 'Consider after major revision', - }, - { - value: 'reject', - label: 'Reject', - }, -] const ReviewerReportForm = ({ - error, + addFile, + removeFile, + review = {}, + errorRequest, isSubmitting, changeField, handleSubmit, formValues = {}, - review = {}, - addFile, - removeFile, - previewFile, + fileFetching, + fileError, + journal: { recommendations }, }) => ( <Root> <Row> @@ -85,7 +81,7 @@ const ReviewerReportForm = ({ {...input} inline onChange={v => changeField('recommendation', v)} - options={options} + options={recommendations} placeholder="Select" /> )} @@ -96,12 +92,16 @@ const ReviewerReportForm = ({ <Spacing /> <Row left> <Label>Report</Label> - <FilePicker - allowedFileExtensions={['pdf', 'doc', 'docx']} - onUpload={addFile} - > - <ActionText left={12}>Upload file</ActionText> - </FilePicker> + {!fileFetching.review ? ( + <FilePicker + allowedFileExtensions={['pdf', 'doc', 'docx']} + onUpload={addFile} + > + <ActionText left={12}>Upload file</ActionText> + </FilePicker> + ) : ( + <Spinner size={2} /> + )} </Row> <Row> <FullWidth> @@ -115,20 +115,18 @@ const ReviewerReportForm = ({ /> )} name="public" - validate={[required]} + validate={isEmpty(formValues.files) ? [required] : []} /> </FullWidth> </Row> {formValues.files && ( - <Row> + <Row left> {formValues.files.map(file => ( <FileItem compact id={file.id} key={file.id} {...file} - downloadFile={previewFile} - previewFile={previewFile} removeFile={removeFile} /> ))} @@ -173,9 +171,14 @@ const ReviewerReportForm = ({ )} <Spacing /> - {error && ( + {fileError && ( <Row> - <ErrorText>{error}</ErrorText> + <ErrorText>{fileError}</ErrorText> + </Row> + )} + {errorRequest && ( + <Row> + <ErrorText>{errorRequest}</ErrorText> </Row> )} <Row> @@ -198,10 +201,14 @@ const ModalWrapper = compose( )) export default compose( + withJournal, connect( state => ({ formValues: getFormValues('reviewerReport')(state), isSubmitting: isSubmitting('reviewerReport')(state), + errorRequest: selectError(state), + fileFetching: getRequestStatus(state), + fileError: getFileError(state), }), { changeForm, @@ -223,14 +230,10 @@ export default compose( changeField: ({ changeForm }) => (field, value) => { changeForm('reviewerReport', field, value) }, - addFile: ({ - formValues: { files = [] }, - uploadFile, - changeForm, - version, - }) => file => { + addFile: ({ formValues = {}, uploadFile, changeForm, version }) => file => { uploadFile(file, 'review', version.id) .then(file => { + const files = formValues.files || [] const newFiles = [...files, file] setTimeout(() => { @@ -254,13 +257,6 @@ export default compose( const newFiles = files.filter(f => f.id !== id) changeForm('reviewerReport', 'files', newFiles) }, - previewFile: ({ getSignedUrl }) => fileId => e => { - e.preventDefault() - const windowReference = window.open() - getSignedUrl(fileId).then(({ signedUrl }) => { - windowReference.location = signedUrl - }) - }, }), reduxForm({ form: 'reviewerReport', diff --git a/packages/component-manuscript/src/components/utils.js b/packages/component-manuscript/src/components/utils.js index d6411a9a3b7e81a4d4cf42123d6729c7426e533f..0ffd247ad00e55e06063eba4a0919b95ab582e2e 100644 --- a/packages/component-manuscript/src/components/utils.js +++ b/packages/component-manuscript/src/components/utils.js @@ -4,6 +4,7 @@ import { get, find, capitalize, omit, isEmpty, isEqual, debounce } from 'lodash' import { autosaveRequest, autosaveSuccess, + autosaveFailure, } from 'pubsweet-component-wizard/src/redux/autosave' export const parseTitle = version => { @@ -105,7 +106,7 @@ export const parseReviewRequest = (review = {}) => { const comments = [ { public: true, - content: review.public || '', + content: review.public || undefined, files: review.files || [], }, ] @@ -113,7 +114,7 @@ export const parseReviewRequest = (review = {}) => { if (review.hasConfidential) { comments.push({ public: false, - content: review.confidential, + content: review.confidential || undefined, files: [], }) } @@ -139,16 +140,16 @@ const onChange = ( const newValues = parseReviewRequest(values) const prevValues = parseReviewRequest(previousValues) - if (!isEqual(newValues, prevValues) && !isEmpty(prevValues)) { + if (!isEqual(newValues, prevValues)) { dispatch(autosaveRequest()) if (newValues.id) { - updateRecommendation(project.id, version.id, newValues).then(r => - dispatch(autosaveSuccess(r.updatedOn)), - ) + updateRecommendation(project.id, version.id, newValues) + .then(r => dispatch(autosaveSuccess(r.updatedOn))) + .catch(e => dispatch(autosaveFailure(e))) } else { - createRecommendation(project.id, version.id, newValues).then(r => - dispatch(autosaveSuccess(r.updatedOn)), - ) + createRecommendation(project.id, version.id, newValues) + .then(r => dispatch(autosaveSuccess(r.updatedOn))) + .catch(e => dispatch(autosaveFailure(e))) } } } diff --git a/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js b/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js index 914a4dfcca191c2b1ed317f2f5c9e17a1d17865d..6ea7ce628dcb2b18814516a475b369850b6071c0 100644 --- a/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js +++ b/packages/components-faraday/src/components/Dashboard/HandlingEditorSection.js @@ -21,7 +21,7 @@ const renderHE = (currentUser, project) => { return <HandlingEditorActions currentUser={currentUser} project={project} /> } - return <AssignedHE>{get(handlingEditor, 'name')}</AssignedHE> + return <AssignedHE>{get(handlingEditor, 'name') || 'N/A'}</AssignedHE> } const HandlingEditorSection = ({ currentUser, project }) => ( diff --git a/packages/components-faraday/src/components/Files/FileDownload.js b/packages/components-faraday/src/components/Files/FileDownload.js new file mode 100644 index 0000000000000000000000000000000000000000..c44a1ff1e77dfd00f25cc3218e0d5119c4840240 --- /dev/null +++ b/packages/components-faraday/src/components/Files/FileDownload.js @@ -0,0 +1,78 @@ +import React from 'react' +import qs from 'querystring' +import { connect } from 'react-redux' +import styled from 'styled-components' +import { Icon, th } from '@pubsweet/ui' +import { compose, withHandlers } from 'recompose' + +const createAnchorElement = (file, filename) => { + const url = URL.createObjectURL(file) + const a = document.createElement('a') + + a.href = url + a.download = filename + document.body.appendChild(a) + + return { + a, + url, + } +} + +const removeAnchorElement = (a, url) => { + document.body.removeChild(a) + URL.revokeObjectURL(url) +} + +const FileDownload = ({ downloadFile }) => ( + <IconButton onClick={downloadFile}> + <Icon primary size={3}> + download + </Icon> + </IconButton> +) + +export default compose( + connect(state => ({ + token: state.currentUser.user.token, + })), + withHandlers({ + downloadFile: ({ fileId, token, fileName = 'file' }) => () => { + const fileURL = `${ + window.location.origin + }/api/files/${fileId}?${qs.stringify({ + download: true, + })}` + + const xhr = new XMLHttpRequest() + xhr.onreadystatechange = function onXhrStateChange() { + if (this.readyState === 4) { + if (this.status >= 200 && this.status < 300) { + const f = new File([this.response], fileName) + + const { a, url } = createAnchorElement(f, fileName) + a.click() + removeAnchorElement(a, url) + } + } + } + xhr.open('GET', fileURL) + xhr.responseType = 'blob' + xhr.setRequestHeader('Authorization', `Bearer ${token}`) + xhr.send() + }, + }), +)(FileDownload) + +// #region styled-components +const IconButton = styled.div` + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + margin: 0 ${th('subGridUnit')}; + &:hover { + opacity: 0.7; + } +` +// #endregion diff --git a/packages/components-faraday/src/components/Files/FileItem.js b/packages/components-faraday/src/components/Files/FileItem.js index 960781cb067ec9d5228709508a714466067b1cc0..cda2a7a8581cc75fc51748b86637c47aa42dc00e 100644 --- a/packages/components-faraday/src/components/Files/FileItem.js +++ b/packages/components-faraday/src/components/Files/FileItem.js @@ -1,7 +1,9 @@ import React, { Fragment } from 'react' import { last } from 'lodash' import { Icon, th } from '@pubsweet/ui' -import styled, { withTheme, css } from 'styled-components' +import styled, { css } from 'styled-components' + +import { FilePreview, FileDownload } from './' const parseFileSize = size => { const kbSize = size / 1000 @@ -24,40 +26,25 @@ const hasPreview = (name = '') => { } const FileItem = ({ - dragHandle, + id, name, size, - id, + theme, + dragHandle, removeFile, - previewFile, - downloadFile, compact = false, - theme, - ...rest }) => ( <Fragment> {compact ? ( <FileRoot data-test={`file-${id}`}> - {hasPreview(name) && ( - <IconButton onClick={previewFile(id)}> - <Icon primary size={3}> - eye - </Icon> - </IconButton> - )} - {downloadFile && ( - <IconButton onClick={downloadFile(id, name)}> - <Icon primary size={3}> - download - </Icon> - </IconButton> - )} + {hasPreview(name) && <FilePreview fileId={id} />} + <FileDownload fileId={id} fileName={name} /> <FileName>{name}</FileName> <FileSize>{parseFileSize(size)}</FileSize> {removeFile && ( <IconButton onClick={removeFile(id)}> <Icon primary size={3}> - trash-2 + x </Icon> </IconButton> )} @@ -70,14 +57,10 @@ const FileItem = ({ <span>{parseFileSize(size)}</span> </Info> <Buttons> - <button onClick={previewFile(id)}> - <Icon color={theme.colorPrimary} size={3}> - eye - </Icon> - </button> + {hasPreview(name) && <FilePreview fileId={id} />} {removeFile && ( <button onClick={removeFile(id)} title="Delete"> - <Icon color={theme.colorPrimary} size={3}> + <Icon primary size={3}> trash-2 </Icon> </button> @@ -88,7 +71,7 @@ const FileItem = ({ </Fragment> ) -export default withTheme(FileItem) +export default FileItem // #region styles const defaultText = css` @@ -101,7 +84,7 @@ const Root = styled.div` align-items: center; border: ${th('borderDefault')}; display: flex; - margin: 5px; + margin: ${th('subGridUnit')}; ` const Info = styled.div` @@ -116,7 +99,7 @@ const Buttons = styled.div` align-items: center; display: flex; justify-content: center; - margin: 0 10px; + margin: 0 calc(${th('subGridUnit')}*2); a { align-items: center; @@ -159,6 +142,7 @@ const FileRoot = styled.div` display: flex; flex-direction: row; margin-bottom: ${th('subGridUnit')}; + margin-right: ${th('subGridUnit')}; padding: ${th('subGridUnit')}; ` // #endregion diff --git a/packages/components-faraday/src/components/Files/FilePreview.js b/packages/components-faraday/src/components/Files/FilePreview.js new file mode 100644 index 0000000000000000000000000000000000000000..d57fa6067baeba1f4d42c561d5855b9b6cbf9df4 --- /dev/null +++ b/packages/components-faraday/src/components/Files/FilePreview.js @@ -0,0 +1,41 @@ +import React from 'react' +import { connect } from 'react-redux' +import styled from 'styled-components' +import { Icon, th } from '@pubsweet/ui' +import { compose, withHandlers } from 'recompose' + +import { getSignedUrl } from '../../redux/files' + +const FilePreview = ({ previewFile }) => ( + <IconButton onClick={previewFile}> + <Icon primary size={3}> + eye + </Icon> + </IconButton> +) + +export default compose( + connect(null, { getSignedUrl }), + withHandlers({ + previewFile: ({ fileId, getSignedUrl }) => e => { + e.preventDefault() + const windowReference = window.open() + getSignedUrl(fileId).then(({ signedUrl }) => { + windowReference.location = signedUrl + }) + }, + }), +)(FilePreview) + +// #region styled-components +const IconButton = styled.div` + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + margin: 0 ${th('subGridUnit')}; + &:hover { + opacity: 0.7; + } +` +// #endregion diff --git a/packages/components-faraday/src/components/Files/FileSection.js b/packages/components-faraday/src/components/Files/FileSection.js index 1307664718e3b4e3939c0012741bca7fe0be9392..e2ab8427483382eb80b7d2dc36a17bcc92aee8a7 100644 --- a/packages/components-faraday/src/components/Files/FileSection.js +++ b/packages/components-faraday/src/components/Files/FileSection.js @@ -28,6 +28,7 @@ const FileSection = ({ error, title, files, + theme, listId, isOver, isLast, @@ -35,18 +36,16 @@ const FileSection = ({ addFile, canDrop, moveItem, - theme, isFileOver, removeFile, - connectFileDrop, - connectDropTarget, - allowedFileExtensions, isFetching, canDropFile, - disabledFilepicker, - dropSortableFile, - previewFile, requestPending, + connectFileDrop, + dropSortableFile, + connectDropTarget, + disabledFilepicker, + allowedFileExtensions, }) => ( <DropSection innerRef={instance => { @@ -95,7 +94,6 @@ const FileSection = ({ listId={listId} listItem={FileItem} moveItem={moveItem} - previewFile={previewFile} removeFile={removeFile} /> <InfoContainer> diff --git a/packages/components-faraday/src/components/Files/Files.js b/packages/components-faraday/src/components/Files/Files.js index 14014ae1b6136e1595fe1b365c30f35637d03769..f8b340238cce041d62df95732a15c448a41277a7 100644 --- a/packages/components-faraday/src/components/Files/Files.js +++ b/packages/components-faraday/src/components/Files/Files.js @@ -19,21 +19,18 @@ import FileSection from './FileSection' import { uploadFile, deleteFile, - getRequestStatus, - getSignedUrl, getFileError, + getRequestStatus, } from '../../redux/files' const Files = ({ files, + error, addFile, moveItem, removeFile, changeList, dropSortableFile, - previewFile, - error, - ...rest }) => ( <div> <Error show={error}>Error uploading file, please try again.</Error> @@ -47,7 +44,6 @@ const Files = ({ listId="manuscripts" maxFiles={Number.POSITIVE_INFINITY} moveItem={moveItem('manuscripts')} - previewFile={previewFile} removeFile={removeFile('manuscripts')} title="Main manuscript" /> @@ -59,7 +55,6 @@ const Files = ({ listId="supplementary" maxFiles={Number.POSITIVE_INFINITY} moveItem={moveItem('supplementary')} - previewFile={previewFile} removeFile={removeFile('supplementary')} title="Supplementarry files" /> @@ -73,7 +68,6 @@ const Files = ({ listId="coverLetter" maxFiles={1} moveItem={moveItem('coverLetter')} - previewFile={previewFile} removeFile={removeFile('coverLetter')} title="Cover letter" /> @@ -92,7 +86,6 @@ export default compose( changeForm, uploadFile, deleteFile, - getSignedUrl, }, ), withState('files', 'setFiles', { @@ -111,18 +104,6 @@ export default compose( }, }), withHandlers({ - previewFile: ({ - files, - version, - getFileName, - getSignedUrl, - }) => fileId => e => { - e.preventDefault() - const windowReference = window.open() - getSignedUrl(fileId).then(({ signedUrl }) => { - windowReference.location = signedUrl - }) - }, dropSortableFile: ({ files, setFiles, changeForm }) => ( otherProps, dragProps, diff --git a/packages/components-faraday/src/components/Files/index.js b/packages/components-faraday/src/components/Files/index.js index ab85f18a55158ad1fc24c64e32e0023158ec7ae2..a4308c6b8ef70663cd3bad41111c4f56f7cf3da2 100644 --- a/packages/components-faraday/src/components/Files/index.js +++ b/packages/components-faraday/src/components/Files/index.js @@ -1,3 +1,5 @@ export { default as Files } from './Files' export { default as FileItem } from './FileItem' export { default as FilePicker } from './FilePicker' +export { default as FilePreview } from './FilePreview' +export { default as FileDownload } from './FileDownload' diff --git a/packages/components-faraday/src/redux/recommendations.js b/packages/components-faraday/src/redux/recommendations.js index 38c278451bf32d80663a10ed55863b6341739b12..a86bfc4758accc0282602783c5927db65940cd0b 100644 --- a/packages/components-faraday/src/redux/recommendations.js +++ b/packages/components-faraday/src/redux/recommendations.js @@ -1,5 +1,4 @@ import { get } from 'lodash' -import { SubmissionError } from 'redux-form' import { create, update } from 'pubsweet-client/src/helpers/api' const REQUEST = 'recommendations/REQUEST' @@ -61,9 +60,6 @@ export const createRecommendation = ( if (error) { const errorMessage = get(JSON.parse(error), 'error') dispatch(recommendationsError(errorMessage)) - throw new SubmissionError({ - _error: errorMessage || 'Something went wrong', - }) } }, ) @@ -90,9 +86,6 @@ export const updateRecommendation = ( if (error) { const errorMessage = get(JSON.parse(error), 'error') dispatch(recommendationsError(errorMessage)) - throw new SubmissionError({ - _error: errorMessage || 'Something went wrong', - }) } }, ) diff --git a/packages/xpub-faraday/app/config/journal/recommendations.js b/packages/xpub-faraday/app/config/journal/recommendations.js index f65e0d670ba866846f46282045eb2225dde91878..4bcc3ff06eb99a2a2c4a184933b5ec0956f8f3db 100644 --- a/packages/xpub-faraday/app/config/journal/recommendations.js +++ b/packages/xpub-faraday/app/config/journal/recommendations.js @@ -1,17 +1,18 @@ export default [ { - color: 'green', - label: 'Accept', - value: 'accept', + value: 'publish', + label: 'Publish unaltered', }, { - color: 'orange', - label: 'Revise', - value: 'revise', + value: 'major', + label: 'Consider after major revision', + }, + { + value: 'minor', + label: 'Consider after major revision', }, { - color: 'red', - label: 'Reject', value: 'reject', + label: 'Reject', }, ]