summaryrefslogtreecommitdiff
path: root/app/client/queue
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-06-04 21:43:36 +0200
committerJules Laplace <julescarbon@gmail.com>2018-06-04 21:43:36 +0200
commit5321bafae0916861e270b692a42b3b699a96d339 (patch)
tree9137cd8ff869b623bb257a22f29223a2af661a44 /app/client/queue
parent55a5504ab1271bb5cdc3d7d7df5df853b0161148 (diff)
task index / queue translation
Diffstat (limited to 'app/client/queue')
-rw-r--r--app/client/queue/queue.actions.js9
-rw-r--r--app/client/queue/queue.reducer.js87
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
}