diff options
| author | Jules Laplace <julescarbon@gmail.com> | 2018-06-04 21:43:36 +0200 |
|---|---|---|
| committer | Jules Laplace <julescarbon@gmail.com> | 2018-06-04 21:43:36 +0200 |
| commit | 5321bafae0916861e270b692a42b3b699a96d339 (patch) | |
| tree | 9137cd8ff869b623bb257a22f29223a2af661a44 /app/client/queue | |
| parent | 55a5504ab1271bb5cdc3d7d7df5df853b0161148 (diff) | |
task index / queue translation
Diffstat (limited to 'app/client/queue')
| -rw-r--r-- | app/client/queue/queue.actions.js | 9 | ||||
| -rw-r--r-- | app/client/queue/queue.reducer.js | 87 |
2 files changed, 41 insertions, 55 deletions
diff --git a/app/client/queue/queue.actions.js b/app/client/queue/queue.actions.js index 6e39e71..3450ecc 100644 --- a/app/client/queue/queue.actions.js +++ b/app/client/queue/queue.actions.js @@ -1,6 +1,8 @@ import socket from '../socket' import types from '../types' +import actions from '../actions' + export const start_task = (task, opt={}) => { socket.task.start_task(task, opt) return { type: types.task.starting_task, task, ...opt } @@ -10,3 +12,10 @@ export const stop_task = (task, opt={}) => { socket.task.stop_task(task, opt) return { type: types.task.stopping_task, task, ...opt } } + +export const add_task = (new_task) => (dispatch) => { + actions.task.create(new_task) + .then((task) => { + socket.task.add_task(task, opt) + }) +}
\ No newline at end of file diff --git a/app/client/queue/queue.reducer.js b/app/client/queue/queue.reducer.js index c3995b1..02d6943 100644 --- a/app/client/queue/queue.reducer.js +++ b/app/client/queue/queue.reducer.js @@ -1,68 +1,45 @@ import types from '../types' +import * as util from '../util' import moment from 'moment' const queueInitialState = { loading: false, error: null, - - queue: [ - { - id: 1073, - activity: 'train', - module: 'samplernn', - dataset: 'bobby_brown_-_every_little_step', - epochs: 6, - }, - { - id: 1073, - activity: 'train', - module: 'pix2pix', - checkpoint: 'lyra_voice_layers', - dataset: 'audio/lyra_improv', - epochs: 30, - }, - { - id: 1073, - activity: 'train', - module: 'pix2pix', - checkpoint: 'lyra_melody_lines', - dataset: 'audio/lyra_improv', - epochs: 30, - }, - { - id: 1073, - activity: 'train', - module: 'pix2pix', - checkpoint: 'ensemble_chords', - dataset: 'audio/lyra_improv', - epochs: 30, - }, - { - id: 1073, - activity: 'generate', - module: 'samplernn', - dataset: 'coccoglass3', - opt: { time: 5, count: 6 }, - }, - { - id: 1073, - activity: 'train', - module: 'pix2pix', - dataset: 'video/woods_green', - epochs: 100, - }, - { - id: 1073, - activity: 'train', - module: 'samplernn', - dataset: 'bobby_brown_-_every_little_step', - epochs: 6, - }, - ], + tasks: {}, + queue: [], + completed: [], } +const dateSort = util.sort.orderByFn('date desc') +const prioritySort = util.sort.orderByFn('priority asc') + const queueReducer = (state = queueInitialState, action) => { switch(action.type) { + case types.task.create: + return { + ...state, + tasks: { + ...state.tasks, + [action.data.id]: action.data, + }, + queue: state.queue.concat([action.data]), + } + case types.task.index: + console.log(action.data) + return { + ...state, + tasks: action.data.reduce((a,b) => (a[b.id] = b, a), {}), + queue: action.data + .filter(a => !a.completed) + .map(dateSort.mapFn) + .sort(dateSort.sortFn) + .map(pair => pair[1].id), + completed: action.data + .filter(a => a.completed) + .map(prioritySort.mapFn) + .sort(prioritySort.sortFn) + .map(pair => pair[1].id), + } default: return state } |
