From 0f30ec07db32dde6e90cd368d6c7372090b4482a Mon Sep 17 00:00:00 2001
From: Bogdan Cochior <bogdan.cochior@thinslices.com>
Date: Thu, 18 Jan 2018 16:47:17 +0200
Subject: [PATCH] Fix upload issue on faraday

---
 .../src/components/WizardStep.js              |  2 +-
 .../xpub-faraday-server/src/AuthorBackend.js  |  1 -
 .../src/AuthorBackend.test.js                 |  2 --
 packages/xpub-faraday/app/app.js              |  2 +-
 .../config/journal/article-sections-tbrm.js   | 30 +++++++++++++++++++
 .../app/config/journal/article-types-tbrm.js  | 18 +++++++++++
 .../xpub-faraday/app/config/journal/index.js  |  2 ++
 .../app/config/journal/submit-wizard.js       | 15 +++++-----
 packages/xpub-faraday/config/validations.js   | 23 ++++++++++----
 9 files changed, 77 insertions(+), 18 deletions(-)
 create mode 100644 packages/xpub-faraday/app/config/journal/article-sections-tbrm.js
 create mode 100644 packages/xpub-faraday/app/config/journal/article-types-tbrm.js

diff --git a/packages/component-wizard/src/components/WizardStep.js b/packages/component-wizard/src/components/WizardStep.js
index 60883dc3a..75fd1afdd 100644
--- a/packages/component-wizard/src/components/WizardStep.js
+++ b/packages/component-wizard/src/components/WizardStep.js
@@ -67,7 +67,7 @@ export default ({
         <Button primary type="submit">
           {isFinal
             ? `${wizard.submitText || 'Submit Manuscript'}`
-            : `${wizard.nextText || 'Cancel'}`}
+            : `${wizard.nextText || 'Next'}`}
         </Button>
       </div>
     </form>
diff --git a/packages/xpub-faraday-server/src/AuthorBackend.js b/packages/xpub-faraday-server/src/AuthorBackend.js
index 5e18d45c1..a7ec49f6e 100644
--- a/packages/xpub-faraday-server/src/AuthorBackend.js
+++ b/packages/xpub-faraday-server/src/AuthorBackend.js
@@ -44,7 +44,6 @@ const AuthorBackend = app => {
         fragment = await fragment.save()
         res.status(200).json(fragment)
       } catch (e) {
-        console.log(e)
         if (e.name === 'NotFoundError') {
           res.status(e.status).json({ error: 'Fragment not found' })
           return
diff --git a/packages/xpub-faraday-server/src/AuthorBackend.test.js b/packages/xpub-faraday-server/src/AuthorBackend.test.js
index d05c25f4f..22536c86a 100644
--- a/packages/xpub-faraday-server/src/AuthorBackend.test.js
+++ b/packages/xpub-faraday-server/src/AuthorBackend.test.js
@@ -6,8 +6,6 @@ const express = require('express')
 const supertest = require('supertest')
 const component = require('..')
 
-const token =
-  'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6InNlYmkiLCJpZCI6IjVlMTRiY2IyLWQ5ZTEtNDZjOS05ZDI0LTM3YTk4MDhmMjFmYiIsImlhdCI6MTUxNjExODAxMSwiZXhwIjoxNTE2MjA0NDExfQ.tqH0Nnpiec2c1FPL2K5fK4krHGN2SrYyMbqVSnYSpog'
 const author = {
   first_name: 'marcel',
   middle_name: 'sss',
diff --git a/packages/xpub-faraday/app/app.js b/packages/xpub-faraday/app/app.js
index 6ca64de09..fb7eae11e 100644
--- a/packages/xpub-faraday/app/app.js
+++ b/packages/xpub-faraday/app/app.js
@@ -11,7 +11,7 @@ import * as journal from './config/journal'
 import Routes from './routes'
 
 const history = createHistory()
-export const store = configureStore(history, {})
+const store = configureStore(history, {})
 const theme = {}
 
 const render = () => {
diff --git a/packages/xpub-faraday/app/config/journal/article-sections-tbrm.js b/packages/xpub-faraday/app/config/journal/article-sections-tbrm.js
new file mode 100644
index 000000000..ab5c5e94d
--- /dev/null
+++ b/packages/xpub-faraday/app/config/journal/article-sections-tbrm.js
@@ -0,0 +1,30 @@
+export default [
+  {
+    label: 'Cognitive Psychology',
+    value: 'cognitive-psychology',
+  },
+  {
+    label: 'Social Psychology',
+    value: 'social-psychology',
+  },
+  {
+    label: 'Personality Psychology',
+    value: 'personality-psychology',
+  },
+  {
+    label: 'Developmental Psychology',
+    value: 'developmental-psychology',
+  },
+  {
+    label: 'Clinical Psychology',
+    value: 'clinical-psychology',
+  },
+  {
+    label: 'Organizational Behavior',
+    value: 'organizational-behavior',
+  },
+  {
+    label: 'Methodology and Research Practice',
+    value: 'methodology',
+  },
+]
diff --git a/packages/xpub-faraday/app/config/journal/article-types-tbrm.js b/packages/xpub-faraday/app/config/journal/article-types-tbrm.js
new file mode 100644
index 000000000..a5d08e5f9
--- /dev/null
+++ b/packages/xpub-faraday/app/config/journal/article-types-tbrm.js
@@ -0,0 +1,18 @@
+export default [
+  {
+    label: 'Original Research Report',
+    value: 'original-research',
+  },
+  {
+    label: 'Review',
+    value: 'review',
+  },
+  {
+    label: 'Opinion/Commentary',
+    value: 'opinion',
+  },
+  {
+    label: 'Registered Report',
+    value: 'registered-report',
+  },
+]
diff --git a/packages/xpub-faraday/app/config/journal/index.js b/packages/xpub-faraday/app/config/journal/index.js
index fccf0c181..874f46128 100644
--- a/packages/xpub-faraday/app/config/journal/index.js
+++ b/packages/xpub-faraday/app/config/journal/index.js
@@ -7,4 +7,6 @@ export { default as editors } from './editors'
 export { default as roles } from './roles'
 export { default as wizard } from './submit-wizard'
 export { default as issueTypes } from './issues-types'
+export { default as articleTypes } from './article-types-tbrm'
+export { default as articleSections } from './article-sections-tbrm'
 export { default as manuscriptTypes } from './manuscript-types'
diff --git a/packages/xpub-faraday/app/config/journal/submit-wizard.js b/packages/xpub-faraday/app/config/journal/submit-wizard.js
index 73318a55e..6de83e0e5 100644
--- a/packages/xpub-faraday/app/config/journal/submit-wizard.js
+++ b/packages/xpub-faraday/app/config/journal/submit-wizard.js
@@ -7,7 +7,7 @@ import {
   TextField,
   Supplementary,
 } from '@pubsweet/ui'
-import uploadFile from 'xpub-upload'
+import uploadFileFn from 'xpub-upload'
 import { required, minChars, minSize } from 'xpub-validators'
 import { AuthorList } from 'pubsweet-component-wizard/src/components'
 
@@ -34,9 +34,12 @@ const journal = {
   value: 'hindawi-faraday',
 }
 
+const uploadFile = input => uploadFileFn(input)
+
 export default {
   showProgress: true,
   formSectionKeys: ['metadata', 'declarations', 'conflicts', 'notes', 'files'],
+  dispatchFunctions: [uploadFile],
   steps: [
     {
       label: 'Journal details',
@@ -107,6 +110,7 @@ export default {
           fieldId: 'conflicts.hasConflicts',
           renderComponent: yesNoWithLabel,
           label: 'Is there a potential conflict of interest?',
+          validate: [required],
         },
         {
           dependsOn: {
@@ -125,22 +129,19 @@ export default {
       title: 'Manuscript Files Upload',
       children: [
         {
-          fieldId: 'mainManuscripts',
+          fieldId: 'files.manuscripts',
           label: 'Main Manuscript',
           renderComponent: Supplementary,
-          uploadFile,
         },
         {
-          fieldId: 'supplementalFiles',
+          fieldId: 'files.supplementary',
           label: 'Supplemental Files',
           renderComponent: Supplementary,
-          uploadFile,
         },
         {
-          fieldId: 'coverLetter',
+          fieldId: 'files.coverLetter',
           label: 'Cover Letter',
           renderComponent: Supplementary,
-          uploadFile,
         },
       ],
     },
diff --git a/packages/xpub-faraday/config/validations.js b/packages/xpub-faraday/config/validations.js
index f9d3945aa..8e82f6e46 100644
--- a/packages/xpub-faraday/config/validations.js
+++ b/packages/xpub-faraday/config/validations.js
@@ -29,12 +29,15 @@ module.exports = {
         message: Joi.string(),
       }),
       files: Joi.object({
-        manuscript: Joi.object({
-          name: Joi.string().required(),
-          type: Joi.string(),
-          size: Joi.number(),
-          url: Joi.string(),
-        }),
+        manuscript: Joi.any(),
+        manuscripts: Joi.array().items(
+          Joi.object({
+            name: Joi.string().required(),
+            type: Joi.string(),
+            size: Joi.number(),
+            url: Joi.string(),
+          }),
+        ),
         supplementary: Joi.array().items(
           Joi.object({
             name: Joi.string().required(),
@@ -43,6 +46,14 @@ module.exports = {
             url: Joi.string(),
           }),
         ),
+        coverLetter: Joi.array().items(
+          Joi.object({
+            name: Joi.string().required(),
+            type: Joi.string(),
+            size: Joi.number(),
+            url: Joi.string(),
+          }),
+        ),
       }),
       notes: Joi.object({
         fundingAcknowledgement: Joi.string(),
-- 
GitLab