summaryrefslogtreecommitdiff
path: root/app/client/modules
diff options
context:
space:
mode:
Diffstat (limited to 'app/client/modules')
-rw-r--r--app/client/modules/samplernn/samplernn.datasets.js20
-rw-r--r--app/client/modules/samplernn/samplernn.show.js14
-rw-r--r--app/client/modules/samplernn/samplernn.tasks.js6
3 files changed, 31 insertions, 9 deletions
diff --git a/app/client/modules/samplernn/samplernn.datasets.js b/app/client/modules/samplernn/samplernn.datasets.js
index 50e7d59..3d4219e 100644
--- a/app/client/modules/samplernn/samplernn.datasets.js
+++ b/app/client/modules/samplernn/samplernn.datasets.js
@@ -92,11 +92,19 @@ class SampleRNNDatasets extends Component {
const { samplernn, folder, runner, onPickDataset, onPickFile, datasetActions } = this.props
const { datasetLookup, fileLookup } = samplernn.data
const { mapFn, sortFn } = util.sort.orderByFn('date desc')
+ const moduleOnCPU = runner && runner.cpu.task && runner.cpu.task.module === samplernnModule.name
const moduleOnGPU = runner && runner.gpu.task && runner.gpu.task.module === samplernnModule.name
const datasets = folder.datasets.map(name => datasetLookup[name]).map(mapFn).sort(sortFn).map(pair => {
const dataset = pair[1]
- const isProcessing = moduleOnGPU && runner.gpu.task.dataset === dataset
- const status = isProcessing ? util.gerund(runner.gpu.task.activity) : ''
+ let status = ''
+ let isProcessing = false, isFetching = false
+ if (moduleOnGPU && runner.gpu.task.dataset === dataset) {
+ status = util.gerund(runner.gpu.task.activity)
+ isProcessing = true
+ } else if (moduleOnCPU && runner.cpu.task.activity === 'fetch' && runner.cpu.task.opt.file_id === dataset.input[0]) {
+ isProcessing = true
+ isFetching = true
+ }
return (
<div key={dataset.name} className='row dataset' onClick={() => onPickDataset && onPickDataset(dataset)}>
{this.props.beforeRow && this.props.beforeRow(dataset)}
@@ -114,9 +122,13 @@ class SampleRNNDatasets extends Component {
/>
}
</div>
- <div className={'col quiet ' + (dataset.isBuilt ? 'built' : 'not_built')}>
+ <div className={[
+ 'col', 'quiet',
+ (dataset.isBuilt ? 'built' : 'not_built'),
+ (isProcessing ? 'processing': 'not_processing')
+ ].join(' ')}>
+ {this.props.datasetActions && this.props.datasetActions(dataset, isFetching, isProcessing)}
{status}
- {this.props.datasetActions && this.props.datasetActions(dataset)}
</div>
<div className='col checkpoint'>
{!!dataset.checkpoints.length &&
diff --git a/app/client/modules/samplernn/samplernn.show.js b/app/client/modules/samplernn/samplernn.show.js
index 8b6f357..1237d9b 100644
--- a/app/client/modules/samplernn/samplernn.show.js
+++ b/app/client/modules/samplernn/samplernn.show.js
@@ -21,6 +21,10 @@ const samplernnModule = {
}
class SampleRNNShow extends Component {
+ constructor(props){
+ super(props)
+ this.datasetActions = this.datasetActions.bind(this)
+ }
render(){
const { samplernn, match, history } = this.props
const { folderLookup } = (samplernn.data || {})
@@ -51,12 +55,12 @@ class SampleRNNShow extends Component {
console.log('picked a file', file)
this.handlePick(file)
}}
- datasetActions={(dataset) => this.datasetActions(dataset)}
+ datasetActions={this.datasetActions}
/>
</div>
)
}
- datasetActions(dataset){
+ datasetActions(dataset, isFetching=false, isProcessing=false){
const { samplernn, remote } = this.props
const { fileLookup } = samplernn.data
const input = fileLookup[dataset.input[0]]
@@ -76,8 +80,12 @@ class SampleRNNShow extends Component {
{'fetched '}
<span class='link' onClick={() => remote.clear_cache_task(dataset)}>rm</span>
</div>
+ : isFetching
+ ? <div class='subtext'>
+ {'fetching'}
+ </div>
: <div class='subtext'>
- <span class='link' onClick={() => remote.fetch_task(input.url)}>fetch</span>
+ <span class='link' onClick={() => remote.fetch_task(input.url, input.id, dataset.name)}>fetch</span>
</div>
}
</div>
diff --git a/app/client/modules/samplernn/samplernn.tasks.js b/app/client/modules/samplernn/samplernn.tasks.js
index 28354d7..21939dd 100644
--- a/app/client/modules/samplernn/samplernn.tasks.js
+++ b/app/client/modules/samplernn/samplernn.tasks.js
@@ -20,14 +20,16 @@ export const train_task = (dataset, epochs=1) => dispatch => {
console.log(task)
return actions.queue.add_task(task)
}
-export const fetch_task = (url) => dispatch => {
+export const fetch_task = (url, file_id, dataset) => dispatch => {
if (! url) return console.log('input file inaccessible (no url)')
const task = {
module: 'samplernn',
activity: 'fetch',
dataset: name,
opt: {
- url: url,
+ url,
+ file_id,
+ dataset,
}
}
return actions.queue.add_task(task)