From 1b1ea98f085dba57d5eefea1a65069510c4c23d0 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Fri, 3 Jun 2016 18:53:30 -0700 Subject: web: add flows to redux state --- web/src/js/connection.js | 5 ++++- web/src/js/ducks/eventLog.js | 6 +++--- web/src/js/ducks/flows.js | 29 +++++++++++++++++++++++++++++ web/src/js/ducks/index.js | 6 ++++-- 4 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 web/src/js/ducks/flows.js (limited to 'web/src') diff --git a/web/src/js/connection.js b/web/src/js/connection.js index bf9b16d3..ac39a018 100644 --- a/web/src/js/connection.js +++ b/web/src/js/connection.js @@ -2,6 +2,7 @@ import {ConnectionActions} from "./actions.js"; import {AppDispatcher} from "./dispatcher.js"; import * as webSocketActions from "./ducks/websocket" import * as eventLogActions from "./ducks/eventLog" +import * as flowActions from "./ducks/flows" export default function Connection(url, dispatch) { if (url[0] === "/") { @@ -11,9 +12,9 @@ export default function Connection(url, dispatch) { var ws = new WebSocket(url); ws.onopen = function () { dispatch(webSocketActions.connected()) + dispatch(flowActions.fetchFlows()) dispatch(eventLogActions.fetchLogEntries()) ConnectionActions.open() - //TODO: fetch stuff! }; ws.onmessage = function (m) { var message = JSON.parse(m.data); @@ -21,6 +22,8 @@ export default function Connection(url, dispatch) { switch (message.type) { case eventLogActions.UPDATE_LOG: return dispatch(eventLogActions.updateLogEntries(message)) + case flowActions.UPDATE_FLOWS: + return dispatch(flowActions.updateFlows(message)) default: console.warn("unknown message", message) } diff --git a/web/src/js/ducks/eventLog.js b/web/src/js/ducks/eventLog.js index 883f537c..00b25bcf 100644 --- a/web/src/js/ducks/eventLog.js +++ b/web/src/js/ducks/eventLog.js @@ -1,4 +1,4 @@ -import makeList, {ADD} from "./utils/list" +import makeList from "./utils/list" import {updateViewFilter, updateViewList} from "./utils/view" const TOGGLE_FILTER = 'TOGGLE_EVENTLOG_FILTER' @@ -10,7 +10,7 @@ const { addToList, updateList, fetchList, -} = makeList(UPDATE_LOG, "/events"); +} = makeList(UPDATE_LOG, "/events") const defaultState = { @@ -67,7 +67,7 @@ export function toggleEventLogFilter(filter) { export function toggleEventLogVisibility() { return {type: TOGGLE_VISIBILITY} } -let id = 0; +let id = 0 export function addLogEntry(message, level = "web") { return addToList({ message, diff --git a/web/src/js/ducks/flows.js b/web/src/js/ducks/flows.js new file mode 100644 index 00000000..fb934489 --- /dev/null +++ b/web/src/js/ducks/flows.js @@ -0,0 +1,29 @@ +import makeList from "./utils/list" + +export const UPDATE_FLOWS = "UPDATE_FLOWS" + +const { + reduceList, + updateList, + fetchList, +} = makeList(UPDATE_FLOWS, "/flows") + + +const defaultState = { + all: reduceList(), +} + +export default function reducer(state = defaultState, action) { + switch (action.type) { + case UPDATE_FLOWS: + let all = reduceList(state.all, action) + return { + ...state, + all, + } + default: + return state + } +} + +export {updateList as updateFlows, fetchList as fetchFlows} \ No newline at end of file diff --git a/web/src/js/ducks/index.js b/web/src/js/ducks/index.js index 3043344c..6c521a70 100644 --- a/web/src/js/ducks/index.js +++ b/web/src/js/ducks/index.js @@ -1,10 +1,12 @@ import {combineReducers} from 'redux' -import eventLog from './eventLog.js' -import websocket from './websocket.js' +import eventLog from './eventLog' +import websocket from './websocket' +import flows from './flows' const rootReducer = combineReducers({ eventLog, websocket, + flows, }) export default rootReducer \ No newline at end of file -- cgit v1.2.3