summaryrefslogtreecommitdiff
path: root/app/client/dataset
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-02 13:40:43 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-02 13:40:43 +0200
commit015c9b3e7ec8b20308fc604d925a6e9c188aa42e (patch)
tree54dab9950e6dd73e1333f2e080cb123d4c1d9c1e /app/client/dataset
parenta6a529a5757417906f6df60ca7557fac3a380966 (diff)
pull in proxy from stone island
Diffstat (limited to 'app/client/dataset')
-rw-r--r--app/client/dataset/dataset.actions.js65
-rw-r--r--app/client/dataset/dataset.component.js60
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),
}
})