From 5321bafae0916861e270b692a42b3b699a96d339 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 4 Jun 2018 21:43:36 +0200 Subject: task index / queue translation --- app/client/queue/queue.reducer.js | 87 ++++++++++++++------------------------- 1 file changed, 32 insertions(+), 55 deletions(-) (limited to 'app/client/queue/queue.reducer.js') 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 } -- cgit v1.2.3-70-g09d2