From e0c5ffbd8fb158959ee46a18c14244232af1df5c Mon Sep 17 00:00:00 2001 From: Ricardo Hernandez-Montoya Date: Mon, 8 May 2017 12:24:52 +0200 Subject: [PATCH] authenticated upload --- src/components/dialog/edit-widget.js | 3 ++- src/containers/visualization.js | 6 ++++-- src/data-managers/files-data-manager.js | 11 +++++++---- src/stores/file-store.js | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/components/dialog/edit-widget.js b/src/components/dialog/edit-widget.js index a6a1523..eeabba3 100644 --- a/src/components/dialog/edit-widget.js +++ b/src/components/dialog/edit-widget.js @@ -35,6 +35,7 @@ import EditWidgetOrientation from './edit-widget-orientation'; class EditWidgetDialog extends Component { static propTypes = { + sessionToken: PropTypes.string.isRequired, show: PropTypes.bool.isRequired, onClose: PropTypes.func.isRequired }; @@ -109,7 +110,7 @@ class EditWidgetDialog extends Component { ) } else if (this.props.widget.type === 'Image') { dialogControls.push( - this.validateForm(id)} simulation={this.props.simulation} handleChange={(e, index) => this.handleChange(e, index)} /> + this.validateForm(id)} simulation={this.props.simulation} handleChange={(e, index) => this.handleChange(e, index)} /> ) } else if (this.props.widget.type === 'Gauge') { dialogControls.push( diff --git a/src/containers/visualization.js b/src/containers/visualization.js index 00fc336..a526df3 100644 --- a/src/containers/visualization.js +++ b/src/containers/visualization.js @@ -30,6 +30,7 @@ import Dropzone from '../components/dropzone'; import Widget from './widget'; import EditWidget from '../components/dialog/edit-widget'; +import UserStore from '../stores/user-store'; import VisualizationStore from '../stores/visualization-store'; import ProjectStore from '../stores/project-store'; import SimulationStore from '../stores/simulation-store'; @@ -40,7 +41,7 @@ import NotificationsFactory from '../data-managers/notifications-factory'; class Visualization extends Component { static getStores() { - return [ VisualizationStore, ProjectStore, SimulationStore, FileStore ]; + return [ VisualizationStore, ProjectStore, SimulationStore, FileStore, UserStore ]; } static calculateState(prevState) { @@ -49,6 +50,7 @@ class Visualization extends Component { } return { + sessionToken: UserStore.getState().token, visualizations: VisualizationStore.getState(), projects: ProjectStore.getState(), simulations: SimulationStore.getState(), @@ -384,7 +386,7 @@ class Visualization extends Component { ))} - this.closeEdit(data)} widget={this.state.modalData} simulation={this.state.simulation} files={this.state.files} /> + this.closeEdit(data)} widget={this.state.modalData} simulation={this.state.simulation} files={this.state.files} /> ); diff --git a/src/data-managers/files-data-manager.js b/src/data-managers/files-data-manager.js index 5f7e1c0..f5edb37 100644 --- a/src/data-managers/files-data-manager.js +++ b/src/data-managers/files-data-manager.js @@ -28,13 +28,16 @@ class FilesDataManager extends RestDataManager { super('file', '/files'); } - upload(file) { - RestAPI.upload(this.makeURL('/upload'), file).then(response => { + upload(file, token = null) { + RestAPI.upload(this.makeURL('/upload'), file, token).then(response => { AppDispatcher.dispatch({ type: 'files/uploaded' }); - - console.log(response); + // Trigger a files reload + AppDispatcher.dispatch({ + type: 'files/start-load', + token: token + }); }).catch(error => { AppDispatcher.dispatch({ type: 'files/upload-error', diff --git a/src/stores/file-store.js b/src/stores/file-store.js index 104d16b..09266dd 100644 --- a/src/stores/file-store.js +++ b/src/stores/file-store.js @@ -30,7 +30,7 @@ class FileStore extends ArrayStore { reduce(state, action) { switch (action.type) { case 'files/start-upload': - FilesDataManager.upload(action.data); + FilesDataManager.upload(action.data, action.token); return state; case 'files/uploaded':