summaryrefslogtreecommitdiff
path: root/app/client/modules/samplernn
diff options
context:
space:
mode:
Diffstat (limited to 'app/client/modules/samplernn')
-rw-r--r--app/client/modules/samplernn/samplernn.actions.js5
-rw-r--r--app/client/modules/samplernn/samplernn.datasets.js6
-rw-r--r--app/client/modules/samplernn/samplernn.import.js4
-rw-r--r--app/client/modules/samplernn/samplernn.reducer.js81
-rw-r--r--app/client/modules/samplernn/samplernn.show.js5
5 files changed, 70 insertions, 31 deletions
diff --git a/app/client/modules/samplernn/samplernn.actions.js b/app/client/modules/samplernn/samplernn.actions.js
index 68b13a2..c87718d 100644
--- a/app/client/modules/samplernn/samplernn.actions.js
+++ b/app/client/modules/samplernn/samplernn.actions.js
@@ -172,11 +172,10 @@ export const load_directories = (id) => (dispatch) => {
},
})
if (id) {
- let folder = id === 'unsorted' ? folderLookup.unsorted : folderLookup[id]
- console.log(id)
+ console.log('folder id', id)
dispatch({
type: types.samplernn.set_folder,
- folder: folder,
+ folder_id: id,
})
}
}).catch(e => {
diff --git a/app/client/modules/samplernn/samplernn.datasets.js b/app/client/modules/samplernn/samplernn.datasets.js
index ceb8f46..ef1753d 100644
--- a/app/client/modules/samplernn/samplernn.datasets.js
+++ b/app/client/modules/samplernn/samplernn.datasets.js
@@ -60,7 +60,7 @@ class SampleRNNDatasets extends Component {
)
}
render(){
- const { samplernn, match, history } = this.props
+ const { samplernn, folder, match, history } = this.props
if (samplernn.loading) {
return <Loading progress={samplernn.progress} />
}
@@ -68,7 +68,6 @@ class SampleRNNDatasets extends Component {
console.log('no folders, redirect to /new')
return history.push('/samplernn/new/')
}
- const folder = samplernn.folder
if (!folder || !folder.name) return
return (
<div class='rows params datasets'>
@@ -83,9 +82,8 @@ class SampleRNNDatasets extends Component {
)
}
renderGroups(){
- const { samplernn, runner, onPickDataset, onPickFile, datasetActions } = this.props
+ const { samplernn, folder, runner, onPickDataset, onPickFile, datasetActions } = this.props
const { datasetLookup, fileLookup } = samplernn.data
- const { folder } = samplernn
const { mapFn, sortFn } = util.sort.orderByFn('date desc')
const moduleOnGPU = runner.gpu.task.module === samplernnModule.name
const datasets = folder.datasets.map(name => datasetLookup[name]).map(mapFn).sort(sortFn).map(pair => {
diff --git a/app/client/modules/samplernn/samplernn.import.js b/app/client/modules/samplernn/samplernn.import.js
index 2da5c0e..495ee53 100644
--- a/app/client/modules/samplernn/samplernn.import.js
+++ b/app/client/modules/samplernn/samplernn.import.js
@@ -27,11 +27,12 @@ class SampleRNNImport extends Component {
}
}
render(){
- let datasets = [];
+ let datasets = [], folder;
if (this.props.samplernn.data) {
datasets = (this.props.samplernn.data.folders || []).map(folder => {
return [folder.name, folder.id]
})
+ folder = this.props.samplernn.data.folderLookup.unsorted
}
return (
<div className='app top'>
@@ -79,6 +80,7 @@ class SampleRNNImport extends Component {
</div>
<SampleRNNDatasets
id="unsorted"
+ folder={folder}
history={this.props.history}
onPickDataset={(dataset => this.toggle(dataset.name, this.state.selected[name]))}
beforeRow={dataset => this.beforeRow(dataset)}
diff --git a/app/client/modules/samplernn/samplernn.reducer.js b/app/client/modules/samplernn/samplernn.reducer.js
index a41894f..90e052c 100644
--- a/app/client/modules/samplernn/samplernn.reducer.js
+++ b/app/client/modules/samplernn/samplernn.reducer.js
@@ -5,7 +5,7 @@ const samplernnInitialState = {
progress: { i: 0, n: 0 },
error: null,
folders: [],
- folder: {},
+ folder_id: 0,
data: null,
lossReport: null,
}
@@ -47,7 +47,7 @@ const samplernnReducer = (state = samplernnInitialState, action) => {
folders: state.data.folders.concat([action.data.id]),
folderLookup: {
...state.data.folderLookup,
- [...action.data.id]: action.data,
+ [action.data.id]: action.data,
}
},
folder: {
@@ -60,35 +60,72 @@ const samplernnReducer = (state = samplernnInitialState, action) => {
return state
case types.file.create:
- if (state.folder.id === action.data.folder_id) {
+ if (action.data.module === 'samplernn') {
console.log(action.data, state.folder)
+ // const dataset = {
+ // name,
+ // input: [],
+ // checkpoints: [],
+ // output: [],
+ // }
+ let dataset, old_dataset, folder, old_folder
+ const dataset_name = action.data.name.split('.')[0]
+ if (dataset_name in state.data.datasets) {
+ old_dataset = state.data.datasets[dataset_name]
+ dataset = {
+ ...old_dataset,
+ input: action.data.generated ? old_dataset.input : [action.data.id].concat(old_dataset.input),
+ output: !action.data.generated ? old_dataset.output : [action.data.id].concat(old_dataset.output),
+ }
+ } else {
+ dataset = {
+ name: dataset_name,
+ date: action.data.created_at || action.data.date,
+ input: action.data.generated ? [] : [action.data.id],
+ checkpoints: [],
+ output: !action.data.generated ? [] : [action.data.id],
+ }
+ }
+ old_folder = state.data.folderLookup[action.data.folder_id]
+ folder = {
+ ...old_folder,
+ files: old_folder.files.concat[action.data.id]
+ }
return {
...state,
loading: false,
data: {
+ ...state.data,
files: state.data.files.concat([action.data.id]),
+ folderLookup: {
+ ...state.data.folderLookup,
+ [action.data.folder_id]: folder,
+ },
+ fileLookup: {
+ ...state.data.fileLookup,
+ [action.data.id]: action.data,
+ },
+ datasetLookup: {
+ ...state.data.datasetLookup,
+ [dataset_name]: dataset,
+ },
+ }
+ }
+ }
+ return state
+
+ case types.file.update:
+ if (action.data.module === 'samplernn') {
+ return {
+ ...state,
+ loading: false,
+ data: {
+ ...state.data,
fileLookup: {
...state.data.fileLookup,
- [...action.data.id]: action.data,
+ [action.data.id]: action.data,
}
}
- folder: {
- ...state.folder,
- files: [
- ...state.folder.files,
- action.data,
- ],
- datasets: [
- ...state.folder.datasets,
- {
- name: action.data.name,
- date: action.data.date,
- input: [action.data].concat(state.folder.input),
- output: [],
- checkpoints: [],
- }
- ],
- },
}
}
return state
@@ -112,7 +149,7 @@ const samplernnReducer = (state = samplernnInitialState, action) => {
case types.samplernn.set_folder:
return {
...state,
- folder: action.folder,
+ folder_id: action.folder_id,
}
case types.samplernn.load_loss:
diff --git a/app/client/modules/samplernn/samplernn.show.js b/app/client/modules/samplernn/samplernn.show.js
index cd1cd34..9c2495b 100644
--- a/app/client/modules/samplernn/samplernn.show.js
+++ b/app/client/modules/samplernn/samplernn.show.js
@@ -21,7 +21,9 @@ const samplernnModule = {
class SampleRNNShow extends Component {
render(){
const { samplernn, match, history } = this.props
- const { folder } = samplernn || {}
+ const { folderLookup } = (samplernn.data || {})
+ const folder = (folderLookup || {})[samplernn.folder_id] || {}
+ console.log(folder, samplernn.folder_id)
return (
<div className='app'>
<div class='heading'>
@@ -37,6 +39,7 @@ class SampleRNNShow extends Component {
}
<SampleRNNDatasets
id={this.props.match.params.id || localStorage.getItem('samplernn.last_id')}
+ folder={folder}
onPickFile={(file, e) => {
e.preventDefault()
e.stopPropagation()