diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-02 13:40:43 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-02 13:40:43 +0200 |
| commit | 015c9b3e7ec8b20308fc604d925a6e9c188aa42e (patch) | |
| tree | 54dab9950e6dd73e1333f2e080cb123d4c1d9c1e /app/client/dataset | |
| parent | a6a529a5757417906f6df60ca7557fac3a380966 (diff) | |
pull in proxy from stone island
Diffstat (limited to 'app/client/dataset')
| -rw-r--r-- | app/client/dataset/dataset.actions.js | 65 | ||||
| -rw-r--r-- | app/client/dataset/dataset.component.js | 60 |
2 files changed, 70 insertions, 55 deletions
diff --git a/app/client/dataset/dataset.actions.js b/app/client/dataset/dataset.actions.js index f42e15c..983d586 100644 --- a/app/client/dataset/dataset.actions.js +++ b/app/client/dataset/dataset.actions.js @@ -1,12 +1,71 @@ // import socket from '../socket' import types from '../types' +import actions from '../actions' +import { parser } from '../api' + +export const createOrUpdateFolder = (module, folder) => dispatch => { + if (! folder || ! folder.id) { + actions.folder.create({ + // username... should get added inside the API + module: module.name, + datatype: module.datatype, + activity: 'dataset', + name + }).then(folder => { + // set current folder + }) + } + else { + actions.folder.update({ + id: folder.id, + module: module.name, + datatype: module.datatype, + activity: 'dataset', + name + }) + } +} + +export const uploadFile = (module, folder, file) => dispatch => { + const fd = new FormData() + fd.append('file', file) + actions.folder.upload(fd, { + id: folder.id, + module: module.name, + activity: 'file', + epoch: 0, + processed: false, + generated: false, + }) +} + +export const fetchURL = (module, folder, url) => { + // name url + // mime datatype + // duration analysis + // size activity + // opt created_at updated_at + parser.parse(url, media => { + if (!media) return + console.log('media', media) + actions.file.create({ + folder_id: folder.id, + module: module.name, + activity: 'url', + duration: parseInt(media.duration) || 0, + epoch: 0, + processed: false, + generated: false, + opt: media, + url + }) + }) +} + export const uploadFiles = (files) => { return { type: types.dataset.upload_files } } -export const fetchURL = (url) => { - return { type: types.dataset.fetch_url } -} // export const uploadFiles = (files) => { // return dispatch => { diff --git a/app/client/dataset/dataset.component.js b/app/client/dataset/dataset.component.js index 45f88dc..ebea8c9 100644 --- a/app/client/dataset/dataset.component.js +++ b/app/client/dataset/dataset.component.js @@ -2,7 +2,7 @@ import { h, Component } from 'preact' import { bindActionCreators } from 'redux' import { connect } from 'react-redux' -import { actions, parser } from '../api' +import * as datasetActions from './dataset.actions' import Group from '../common/group.component' import Param from '../common/param.component' @@ -19,59 +19,16 @@ class Dataset extends Component { this.pickFile = this.pickFile.bind(this) } handleName(name) { - const { module, folder } = this.props - if (! folder.id) { - this.props.actions.folder.create({ - // username... should get added inside the API - module: module.name, - datatype: module.datatype, - activity: 'dataset', - name - }) - } else { - this.props.actions.folder.update({ - id: folder.id, - module: module.name, - datatype: module.datatype, - activity: 'dataset', - name - }) - } + const { module, folder, actions } = this.props + actions.dataset.createOrUpdateFolder(module, folder) } handleUpload(file) { - const { module, folder } = this.props - const fd = new FormData() - fd.append('file', file) - this.props.actions.folder.upload(fd, { - id: folder.id, - module: module.name, - activity: 'file', - epoch: 0, - processed: false, - generated: false, - }) + const { module, folder, actions } = this.props + actions.dataset.uploadFile(module, folder, file) } handleURL(url) { - // name url - // mime datatype - // duration analysis - // size activity - // opt created_at updated_at - parser.parse(url, media => { - if (!media) return - console.log('media', media) - this.props.actions.file.create({ - folder_id: this.props.folder.id, - module: this.props.module.name, - activity: 'url', - duration: parseInt(media.duration) || 0, - epoch: 0, - processed: false, - generated: false, - opt: media, - url - }) - }) + const { module, folder, actions } = this.props + actions.dataset.fetchURL(module, folder, url) } pickFile(file){ console.log('pick', file) @@ -139,8 +96,7 @@ const mapStateToProps = state => state.dataset const mapDispatchToProps = (dispatch, ownProps) => ({ actions: { - folder: bindActionCreators(actions.folder, dispatch), - file: bindActionCreators(actions.file, dispatch), + dataset: bindActionCreators(datasetActions, dispatch), } }) |
