diff --git a/app/components/BookBuilder/BookBuilder.jsx b/app/components/BookBuilder/BookBuilder.jsx index 17f6230572e343eb6b44ed737246ac249d8b1d9a..0a8d419818dd9afd74e0322a16e2ddee6731c0ff 100644 --- a/app/components/BookBuilder/BookBuilder.jsx +++ b/app/components/BookBuilder/BookBuilder.jsx @@ -116,9 +116,8 @@ export class BookBuilder extends React.Component { } render () { - console.log(this.props.actions) const { book, chapters, teams, users } = this.props - const { createFragment, deleteFragment, updateFragment, updateTeam } = this.props.actions + const { createFragment, deleteFragment, ink, updateFragment, updateTeam } = this.props.actions const { outerContainer } = this.state const roles = this._getRoles() @@ -169,43 +168,46 @@ export class BookBuilder extends React.Component { </div> <Division - title='Front Matter' - type='front' - outerContainer={outerContainer} add={createFragment} - remove={deleteFragment} - update={updateFragment} + book={book} chapters={frontChapters} + ink={ink} + outerContainer={outerContainer} + remove={deleteFragment} roles={roles} - book={book} + title='Front Matter' + type='front' + update={updateFragment} /> <div className={styles.sectionDivider} /> <Division - title='Body' - type='body' - outerContainer={outerContainer} add={createFragment} - remove={deleteFragment} - update={updateFragment} + book={book} chapters={bodyChapters} + ink={ink} + outerContainer={outerContainer} + remove={deleteFragment} roles={roles} - book={book} + title='Body' + type='body' + update={updateFragment} /> <div className={styles.sectionDivider} /> <Division - title='Back Matter' - type='back' - outerContainer={outerContainer} add={createFragment} - remove={deleteFragment} - update={updateFragment} + book={book} chapters={backChapters} + ink={ink} + outerContainer={outerContainer} + remove={deleteFragment} roles={roles} - book={book} + title='Back Matter' + type='back' + update={updateFragment} /> </div> diff --git a/app/components/BookBuilder/Chapter.jsx b/app/components/BookBuilder/Chapter.jsx index 85773664ccde2a82e9448f4cf75e17ac13ac567f..ead3156629a047a7b6396c36e9d772939b834845 100644 --- a/app/components/BookBuilder/Chapter.jsx +++ b/app/components/BookBuilder/Chapter.jsx @@ -267,7 +267,7 @@ export class Chapter extends React.Component { } render () { - const { book, chapter, type, title, connectDragSource, connectDropTarget, isDragging, roles, outerContainer } = this.props + const { book, chapter, connectDragSource, connectDropTarget, ink, isDragging, outerContainer, roles, title, type } = this.props const { isRenamingTitle, isRenameEmpty } = this.state // const { _onSaveRename } = this const opacity = isDragging ? 0 : 1 @@ -485,9 +485,10 @@ export class Chapter extends React.Component { <div className={styles.secondLineContainer}> <div className={styles.noPadding + ' col-lg-2 col-md-12 col-sm-12 col-xs-12'}> <UploadWordButton - type='file' accept='.docx' + ink={ink} title=' ' + type='file' /> </div> @@ -574,21 +575,18 @@ export class Chapter extends React.Component { } Chapter.propTypes = { - chapter: React.PropTypes.object.isRequired, book: React.PropTypes.object.isRequired, - - remove: React.PropTypes.func.isRequired, - update: React.PropTypes.func.isRequired, - type: React.PropTypes.string.isRequired, - title: React.PropTypes.string.isRequired, - outerContainer: React.PropTypes.object.isRequired, - // roles: React.PropTypes.array.isRequired, - roles: React.PropTypes.array, - - // react-dnd + chapter: React.PropTypes.object.isRequired, connectDragSource: React.PropTypes.func.isRequired, connectDropTarget: React.PropTypes.func.isRequired, - isDragging: React.PropTypes.bool.isRequired + ink: React.PropTypes.func.isRequired, + isDragging: React.PropTypes.bool.isRequired, + outerContainer: React.PropTypes.object.isRequired, + remove: React.PropTypes.func.isRequired, + roles: React.PropTypes.array, + title: React.PropTypes.string.isRequired, + type: React.PropTypes.string.isRequired, + update: React.PropTypes.func.isRequired } // combine them, as each chapter can be both a source and a target diff --git a/app/components/BookBuilder/Division.jsx b/app/components/BookBuilder/Division.jsx index 0c98d21065db4af27e62cb31b7528760442f376b..efd4b54034df659afc0111e30bc1110df7adabff 100644 --- a/app/components/BookBuilder/Division.jsx +++ b/app/components/BookBuilder/Division.jsx @@ -104,7 +104,7 @@ export class Division extends React.Component { } render () { - const { book, title, type, chapters, update, roles, outerContainer } = this.props + const { book, chapters, ink, outerContainer, roles, title, type, update } = this.props const { _onAddClick, _onRemove, _onMove } = this const chapterType = (type === 'body') ? 'chapter' : 'component' @@ -114,16 +114,17 @@ export class Division extends React.Component { <Chapter book={book} chapter={c} - type={c.subCategory} - title={c.title} - remove={_onRemove} - update={update} - move={_onMove} key={c.index} id={c.id} + ink={ink} + move={_onMove} no={i} outerContainer={outerContainer} + remove={_onRemove} roles={roles} + title={c.title} + type={c.subCategory} + update={update} /> ) }) @@ -186,16 +187,16 @@ export class Division extends React.Component { } Division.propTypes = { + add: React.PropTypes.func.isRequired, book: React.PropTypes.object.isRequired, chapters: React.PropTypes.array.isRequired, - title: React.PropTypes.string.isRequired, - type: React.PropTypes.string.isRequired, - add: React.PropTypes.func.isRequired, + ink: React.PropTypes.func.isRequired, + outerContainer: React.PropTypes.object.isRequired, remove: React.PropTypes.func.isRequired, - update: React.PropTypes.func.isRequired, - // roles: React.PropTypes.array.isRequired, roles: React.PropTypes.array, - outerContainer: React.PropTypes.object.isRequired + title: React.PropTypes.string.isRequired, + type: React.PropTypes.string.isRequired, + update: React.PropTypes.func.isRequired } export default DragDropContext(HTML5Backend)(Division) diff --git a/app/components/BookBuilder/UploadWordBtn.jsx b/app/components/BookBuilder/UploadWordBtn.jsx index 448f1d6b8f3bab67fbe4b5c09b8921dbbb592e06..41e27a064747bee83fae9145bed6fa40ffdd54e6 100644 --- a/app/components/BookBuilder/UploadWordBtn.jsx +++ b/app/components/BookBuilder/UploadWordBtn.jsx @@ -2,27 +2,46 @@ import React from 'react' import styles from './styles/bookBuilder.local.scss' export class UploadWordButton extends React.Component { + constructor (props) { + super(props) + this.handleFileUpload = this.handleFileUpload.bind(this) + } render () { - const { type, accept, title } = this.props + const { accept, title, type } = this.props return ( <div id='bb-upload' className={styles.btnFile}> Upload Word <input - type={type} accept={accept} + onChange={this.handleFileUpload} + ref='yes' title={title} + type={type} /> </div> ) } + + handleFileUpload (event) { + event.preventDefault() + + const file = event.target.files[0] + console.log(file) + const convertFile = this.props.ink + + convertFile(file).then(response => + console.log(response) + ) + } } UploadWordButton.propTypes = { - type: React.PropTypes.string.isRequired, accept: React.PropTypes.string.isRequired, - title: React.PropTypes.string.isRequired + ink: React.PropTypes.func.isRequired, + title: React.PropTypes.string.isRequired, + type: React.PropTypes.string.isRequired } export default UploadWordButton diff --git a/config/dev.js b/config/dev.js index 6de0208c7b385912be32f91293838fc2fd7efa28..1c97e8184b894a5a156329c9d41af66b66bfef2e 100644 --- a/config/dev.js +++ b/config/dev.js @@ -18,6 +18,6 @@ module.exports = { teams: universal.teams }, pubsweet: { - components: ['pubsweet-component-signup', 'pubsweet-component-login', 'pubsweet-component-ink-frontend'] + components: universal.components } } diff --git a/config/universal.js b/config/universal.js index 3575878a5305114a30ccb0cdfd5714847d09b7b7..476860a3b0e4ee08d599eb9eaf47ec63c5b909df 100644 --- a/config/universal.js +++ b/config/universal.js @@ -1,6 +1,12 @@ const editoriaMode = require('../app/authsome_editoria') module.exports = { + components: [ + 'pubsweet-component-ink-backend', + 'pubsweet-component-ink-frontend', + 'pubsweet-component-login', + 'pubsweet-component-signup' + ], mode: editoriaMode, teams: { teamProduction: {