From 0157537cc049d4b13384b7042129a61f297f9132 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sat, 26 May 2018 17:10:56 +0200 Subject: pass thru if server/relay are connected --- app/client/common/param.component.js | 19 +++++++++ app/client/socket.js | 13 +++++++ app/client/system/system.component.js | 34 +++++++++++------ app/client/system/system.reducer.js | 72 +++++++++++++++++++++++++++++++++++ app/client/types.js | 11 ++++++ 5 files changed, 137 insertions(+), 12 deletions(-) create mode 100644 app/client/common/param.component.js (limited to 'app/client') diff --git a/app/client/common/param.component.js b/app/client/common/param.component.js new file mode 100644 index 0000000..e788118 --- /dev/null +++ b/app/client/common/param.component.js @@ -0,0 +1,19 @@ +import { h, Component } from 'preact' +import { connect } from 'react-redux' + +export default class Param extends Component { + constructor(props){ + super(props) + } + render() { + return ( +
+ +
+ ) + } +} + diff --git a/app/client/socket.js b/app/client/socket.js index 3f008ef..cc4285b 100644 --- a/app/client/socket.js +++ b/app/client/socket.js @@ -6,6 +6,15 @@ let socket = io.connect('/client') // SOCKET ACTIONS +socket.on('connect', () => store.dispatch({ type: types.socket.connect })) +socket.on('connect_error', (error) => store.dispatch({ type: types.socket.connect_error, error })) +socket.on('reconnect', (attempt) => store.dispatch({ type: types.socket.reconnect, attempt })) +socket.on('reconnecting', () => store.dispatch({ type: types.socket.reconnecting })) +socket.on('reconnect_error', (error) => store.dispatch({ type: types.socket.reconnect_error, error })) +socket.on('reconnect_failed', (error) => store.dispatch({ type: types.socket.reconnect_failed, error })) +socket.on('disconnect', () => store.dispatch({ type: types.socket.disconnect })) +socket.on('error', (error) => store.dispatch({ type: types.socket.error, error })) + socket.on('res', (data) => { console.log(data.cmd) switch (data.cmd) { @@ -49,6 +58,10 @@ socket.on('res', (data) => { socket.on('system_res', (data) => { console.log('system response', data) switch (data.type) { + case 'relay_connected': + return store.dispatch({ type: types.system.relay_connected }) + case 'relay_disconnected': + return store.dispatch({ type: types.system.relay_disconnected }) case 'command_output': store.dispatch({ type: types.system.command_output, diff --git a/app/client/system/system.component.js b/app/client/system/system.component.js index 0819c2f..e097b61 100644 --- a/app/client/system/system.component.js +++ b/app/client/system/system.component.js @@ -3,9 +3,7 @@ import { bindActionCreators } from 'redux' import { connect } from 'react-redux' 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 Param from '../common/param.component' import * as systemActions from './system.actions' @@ -14,21 +12,34 @@ class System extends Component { super() } render(){ - const { site, actions } = this.props + const { site, server, relay, rpc, actions } = this.props return ( -
+

{site.name} System

-
+
+ + {server.status} + {server.error && + {server.error.message} + } + {relay.status} + {rpc.status} + pix2pix dataset.py + pix2pix train.py + train samplernn + - - - + + + + + - {this.renderCommandOutput()}
+ {this.renderCommandOutput()}
) } @@ -57,8 +68,7 @@ class System extends Component { } } const mapStateToProps = state => ({ - site: state.system.site, - cmd: state.system.cmd, + ...state.system }) const mapDispatchToProps = (dispatch, ownProps) => ({ diff --git a/app/client/system/system.reducer.js b/app/client/system/system.reducer.js index e581813..1b0e28f 100644 --- a/app/client/system/system.reducer.js +++ b/app/client/system/system.reducer.js @@ -9,6 +9,21 @@ const systemInitialState = { site: { name: 'Lens Cortex', }, + server: { + connected: false, + status: "disconnected", + error: null, + }, + relay: { + connected: false, + status: "unknown", + error: null, + }, + rpc: { + connected: false, + status: "unknown", + error: null, + }, cmd: { loading: false, loaded: false, @@ -111,6 +126,63 @@ const systemInitialState = { const systemReducer = (state = systemInitialState, action) => { switch(action.type) { + case types.socket.connect: + case types.socket.reconnecting: + return { + ...state, + server: { + status: 'connected', + connected: true, + error: null, + }, + } + case types.socket.reconnect: + return { + ...state, + server: { + status: 'reconnecting (attempt ' + action.attempt + ')', + connected: false, + error: null, + }, + } + case types.socket.connect_error: + case types.socket.reconnect_error: + case types.socket.disconnect: + case types.socket.reconnect_failed: + return { + ...state, + server: { + status: 'disconnected', + connected: false, + error: action.error || null, + }, + } + case types.socket.error: + return { + ...state, + server: { + ...state.socket, + error: action.error, + }, + } + case types.system.relay_connected: + return { + ...state, + relay: { + status: 'connected', + connected: true, + error: null, + } + } + case types.system.relay_disconnected: + return { + ...state, + relay: { + status: 'disconnected', + connected: false, + error: null, + } + } case types.system.running_command: return { ...state, diff --git a/app/client/types.js b/app/client/types.js index fe22465..cba2871 100644 --- a/app/client/types.js +++ b/app/client/types.js @@ -2,8 +2,19 @@ export default { system: { running_command: 'SYSTEM_RUNNING_COMMAND', command_output: 'SYSTEM_COMMAND_OUTPUT', + relay_connected: 'SYSTEM_RELAY_CONNECTED', + relay_disconnected: 'SYSTEM_RELAY_DISCONNECTED', }, socket: { + connect: 'SOCKET_CONNECT', + connect_error: 'SOCKET_CONNECT_ERROR', + reconnect: 'SOCKET_RECONNECT', + reconnecting: 'SOCKET_RECONNECTING', + reconnect_error: 'SOCKET_RECONNECT_ERROR', + reconnect_failed: 'SOCKET_RECONNECT_FAILED', + disconnect: 'SOCKET_DISCONNECT', + error: 'SOCKET_ERROR', + load_params: 'LOAD_PARAMS', list_sequences: 'LIST_SEQUENCES', list_epochs: 'LIST_EPOCHS', -- cgit v1.2.3-70-g09d2