diff options
Diffstat (limited to 'app/client')
| -rw-r--r-- | app/client/common/fileList.component.js | 5 | ||||
| -rw-r--r-- | app/client/modules/samplernn/index.js | 2 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.actions.js | 11 | ||||
| -rw-r--r-- | app/client/modules/samplernn/samplernn.inspect.js | 105 |
4 files changed, 114 insertions, 9 deletions
diff --git a/app/client/common/fileList.component.js b/app/client/common/fileList.component.js index b4b5430..0b69b62 100644 --- a/app/client/common/fileList.component.js +++ b/app/client/common/fileList.component.js @@ -20,10 +20,9 @@ export const FileList = (props) => { return ( <div className={'rows ' + className}> <div class='row heading'> - {files.length + {(files && files.length) ? (title && <h3>{title}</h3>) : <h4>No files</h4>} - <div>{(loading || error) && status}</div> </div> <div className={'filelist rows'}> @@ -71,7 +70,7 @@ export const FileRow = (props) => { {fields.has('module') && file.module} </div> } - {this.props.options && this.props.options(file)} + {props.options && props.options(file)} </div> ) } diff --git a/app/client/modules/samplernn/index.js b/app/client/modules/samplernn/index.js index afb5263..e020c6c 100644 --- a/app/client/modules/samplernn/index.js +++ b/app/client/modules/samplernn/index.js @@ -1,10 +1,12 @@ import { h, Component } from 'preact' import { Route, Link } from 'react-router-dom' import SampleRNNDatasets from './samplernn.datasets' +import SampleRNNInspect from './samplernn.inspect' function router () { return ( <div> + <Route path='/samplernn/inspect/' component={SampleRNNInspect} /> <Route path='/samplernn/datasets/' component={SampleRNNDatasets} /> </div> ) diff --git a/app/client/modules/samplernn/samplernn.actions.js b/app/client/modules/samplernn/samplernn.actions.js index becab34..339c347 100644 --- a/app/client/modules/samplernn/samplernn.actions.js +++ b/app/client/modules/samplernn/samplernn.actions.js @@ -35,7 +35,7 @@ export const load_directories = () => (dispatch) => { const fileLookup = unprocessedFiles.reduce((fileLookup, file) => { file.checkpoints = [] if (! file.name) { - file.name = (file.opt || {}).token || 'unloaded' + file.name = (file.opt || {}).token || file.url // fileLookup[(file.name || 'unsorted').split('.')[0]] = file } else { fileLookup[(file.name).split('.')[0]] = file @@ -100,11 +100,10 @@ export const load_directories = () => (dispatch) => { type: types.samplernn.init, data: { folderLookup, - // folders, files, - // checkpoints, - // builtDatasets, - // flatDatasets, - // report + folders, files, + checkpoints, + builtDatasets, + report }, }) if (folders.length) { diff --git a/app/client/modules/samplernn/samplernn.inspect.js b/app/client/modules/samplernn/samplernn.inspect.js new file mode 100644 index 0000000..5009328 --- /dev/null +++ b/app/client/modules/samplernn/samplernn.inspect.js @@ -0,0 +1,105 @@ +import { h, Component } from 'preact' +import { bindActionCreators } from 'redux' +import { connect } from 'react-redux' + +import * as samplernnActions from './samplernn.actions' + +import Dataset from '../../dataset/dataset.component' + +import Group from '../../common/group.component' +import Slider from '../../common/slider.component' +import Select from '../../common/select.component' +import Button from '../../common/button.component' +import { FileList } from '../../common/fileList.component' +import TextInput from '../../common/textInput.component' + +class SampleRNNInspect extends Component { + constructor(props){ + super() + this.fileOptions = this.fileOptions.bind(this) + this.pickFile = this.pickFile.bind(this) + props.actions.load_directories() + } + pickFile(file){ + console.log('pick', file) + } + fileOptions(file){ + // console.log(file) + if (file.activity === 'url' && !file.dataset) { + if (this.props.runner.cpu.status !== 'IDLE') { + return ( + <div className='gray'> + fetching... + </div> + ) + } else { + return ( + <div className='link' onClick={() => this.fetchURL(file.url)}> + fetch + </div> + ) + } + } + return ( + <div> + <div className='link' onClick={() => this.train(file)}>train</div> + {file.epoch == 0 && <div className='epochs'>{file.epochs} ep.</div>} + </div> + ) + } + fetchURL(url) { + } + render(){ + const { samplernn } = this.props + // console.log(samplernn.upload) + // sort files?? + return ( + <div className='app'> + <div className='heading'> + <h3>SampleRNN (inspect)</h3> + </div> + {this.renderData()} + </div> + ) + } + renderData(){ + const { samplernn, actions } = this.props + console.log(samplernn) + if (! samplernn.data) return + return ( + <div class='row params'> + <FileList + title='Folders' + className='folders' + fields={new Set(['name'])} + onPick={actions.set_folder} + files={samplernn.data.folders} + /> + <FileList + title='Files' + files={samplernn.data.files} + /> + <FileList + title='Datasets' + files={samplernn.data.builtDatasets} + /> + <FileList + title='Checkpoints' + files={samplernn.data.checkpoints} + /> + </div> + ) + } +} + +const mapStateToProps = state => ({ + samplernn: state.module.samplernn, + runner: state.system.runner, + task: state.task, +}) + +const mapDispatchToProps = (dispatch, ownProps) => ({ + actions: bindActionCreators(samplernnActions, dispatch), +}) + +export default connect(mapStateToProps, mapDispatchToProps)(SampleRNNInspect) |
