diff options
author | Jason <jason.daurus@gmail.com> | 2016-06-17 22:02:34 +0800 |
---|---|---|
committer | Jason <jason.daurus@gmail.com> | 2016-06-17 22:12:32 +0800 |
commit | 965b27b52942cc6bf082355a1540bc0f960f1043 (patch) | |
tree | b9d35e94ef0807719cc9005e934160316cf30f91 | |
parent | c82d27b2a215c075dba71254cafdc86e98e0f2d9 (diff) | |
download | mitmproxy-965b27b52942cc6bf082355a1540bc0f960f1043.tar.gz mitmproxy-965b27b52942cc6bf082355a1540bc0f960f1043.tar.bz2 mitmproxy-965b27b52942cc6bf082355a1540bc0f960f1043.zip |
[web] simplify settings
-rw-r--r-- | mitmproxy/web/static/app.js | 4 | ||||
-rw-r--r-- | web/src/js/ducks/settings.js | 44 |
2 files changed, 10 insertions, 38 deletions
diff --git a/mitmproxy/web/static/app.js b/mitmproxy/web/static/app.js index 3052ca4e..387062d8 100644 --- a/mitmproxy/web/static/app.js +++ b/mitmproxy/web/static/app.js @@ -131,9 +131,9 @@ "use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(exports,"__esModule",{value:!0});var _redux=require("redux"),_eventLog=require("./eventLog"),_eventLog2=_interopRequireDefault(_eventLog),_websocket=require("./websocket"),_websocket2=_interopRequireDefault(_websocket),_flows=require("./flows"),_flows2=_interopRequireDefault(_flows),_settings=require("./settings"),_settings2=_interopRequireDefault(_settings),_ui=require("./ui"),_ui2=_interopRequireDefault(_ui),rootReducer=(0,_redux.combineReducers)({eventLog:_eventLog2["default"],websocket:_websocket2["default"],flows:_flows2["default"],settings:_settings2["default"],ui:_ui2["default"]});exports["default"]=rootReducer; },{"./eventLog":42,"./flows":43,"./settings":45,"./ui":46,"./websocket":49,"redux":"redux"}],45:[function(require,module,exports){ -"use strict";function reduce(){var e=arguments.length<=0||void 0===arguments[0]?defaultState:arguments[0],t=arguments[1];switch(t.type){case BEGIN_FETCH:return _extends({},e,{pendings:[],req:t.req});case FETCHED:var r=e.pendings||[];return _extends({},e,{pendings:null,settings:r.reduce(reduceData,t.data)});case RESET:return _extends({},e,{pendings:null,settings:t.data||{}});case RECV_WS_MSG:return e.pendings?_extends({},e,{pendings:e.pendings.concat(t)}):_extends({},e,{settings:reduceData(e.settings,t)});default:return e}}function reduceData(e,t){switch(t.cmd){case WS_MSG_CMD_RESET:return t.data||{};case WS_MSG_CMD_UPDATE:return _.merge({},e,t.data);default:return e}}function fetch(){return function(e){var t=$.getJSON("/settings").done(function(t){return e(handleFetchResponse(t.data))}).fail(function(t){return e(handleFetchError(t))});return e({type:BEGIN_FETCH,req:t}),t}}function handleWsMsg(e){return function(t,r){if(e.cmd!==_actions.StoreCmds.RESET)return t({type:RECV_WS_MSG,cmd:e.cmd,data:e.data});var n=r().settings.req;n&&n.abort(),t(reset(e.data))}}function handleFetchResponse(e){return{type:FETCHED,data:e}}function reset(e){return{type:RESET,data:e}}function handleFetchError(e){return function(t,r){t((0,_eventLog.addLogEntry)(e.stack||e.message||e)),t({type:FETCH_ERROR,error:e})}}Object.defineProperty(exports,"__esModule",{value:!0}),exports.RECV_WS_MSG=exports.FETCH_ERROR=exports.RESET=exports.FETCHED=exports.BEGIN_FETCH=exports.WS_MSG_CMD_UPDATE=exports.WS_MSG_CMD_RESET=exports.WS_MSG_TYPE=void 0;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};exports["default"]=reduce,exports.fetch=fetch,exports.handleWsMsg=handleWsMsg,exports.handleFetchResponse=handleFetchResponse,exports.reset=reset,exports.handleFetchError=handleFetchError;var _actions=require("../actions"),_eventLog=require("./eventLog"),WS_MSG_TYPE=exports.WS_MSG_TYPE="settings",WS_MSG_CMD_RESET=exports.WS_MSG_CMD_RESET="reset",WS_MSG_CMD_UPDATE=exports.WS_MSG_CMD_UPDATE="update",BEGIN_FETCH=exports.BEGIN_FETCH="SETTINGS_BEGIN_FETCH",FETCHED=exports.FETCHED="SETTINGS_FETCHED",RESET=exports.RESET="SETTINGS_RESET",FETCH_ERROR=exports.FETCH_ERROR="SETTINGS_FETCH_ERROR",RECV_WS_MSG=exports.RECV_WS_MSG="SETTINGS_RECV_WS_MSG",defaultState={settings:{},pendings:null,req:null}; +"use strict";function reduce(){var e=arguments.length<=0||void 0===arguments[0]?defaultState:arguments[0],t=arguments[1];switch(t.type){case BEGIN_FETCH:return _extends({},e,{pendings:[]});case FETCHED:var n=e.pendings||[];return _extends({},e,{pendings:null,settings:n.reduce(reduceData,t.data)});case RECV_WS_MSG:return e.pendings?_extends({},e,{pendings:e.pendings.concat(t)}):_extends({},e,{settings:reduceData(e.settings,t)});default:return e}}function reduceData(e,t){switch(t.cmd){case WS_MSG_CMD_UPDATE:return _extends({},e,t.data);default:return e}}function fetch(){return function(e){return e({type:BEGIN_FETCH}),$.getJSON("/settings").done(function(t){return e(handleFetchResponse(t.data))}).fail(function(t){return e(handleFetchError(t))})}}function handleWsMsg(e){return{type:RECV_WS_MSG,cmd:e.cmd,data:e.data}}function handleFetchResponse(e){return{type:FETCHED,data:e}}function handleFetchError(e){return(0,_eventLog.addLogEntry)(e.stack||e.message||e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.RECV_WS_MSG=exports.FETCHED=exports.BEGIN_FETCH=exports.WS_MSG_CMD_UPDATE=exports.WS_MSG_TYPE=void 0;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};exports["default"]=reduce,exports.fetch=fetch,exports.handleWsMsg=handleWsMsg,exports.handleFetchResponse=handleFetchResponse,exports.handleFetchError=handleFetchError;var _eventLog=require("./eventLog"),WS_MSG_TYPE=exports.WS_MSG_TYPE="settings",WS_MSG_CMD_UPDATE=exports.WS_MSG_CMD_UPDATE="update",BEGIN_FETCH=exports.BEGIN_FETCH="SETTINGS_BEGIN_FETCH",FETCHED=exports.FETCHED="SETTINGS_FETCHED",RECV_WS_MSG=exports.RECV_WS_MSG="SETTINGS_RECV_WS_MSG",defaultState={settings:{},pendings:null}; -},{"../actions":1,"./eventLog":42}],46:[function(require,module,exports){ +},{"./eventLog":42}],46:[function(require,module,exports){ "use strict";function reducer(){var e=arguments.length<=0||void 0===arguments[0]?defaultState:arguments[0],t=arguments[1];switch(t.type){case SET_ACTIVE_MENU:return _extends({},e,{activeMenu:t.activeMenu});case _flows.SELECT_FLOW:var r=t.flowId&&!t.currentSelection,n=!t.flowId&&t.currentSelection;return r?_extends({},e,{activeMenu:"Flow"}):n&&"Flow"===e.activeMenu?_extends({},e,{activeMenu:"Start"}):e;default:return e}}function setActiveMenu(e){return{type:SET_ACTIVE_MENU,activeMenu:e}}Object.defineProperty(exports,"__esModule",{value:!0});var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e};exports["default"]=reducer,exports.setActiveMenu=setActiveMenu;var _flows=require("./flows"),SET_ACTIVE_MENU="SET_ACTIVE_MENU",defaultState={activeMenu:"Start"}; },{"./flows":43}],47:[function(require,module,exports){ diff --git a/web/src/js/ducks/settings.js b/web/src/js/ducks/settings.js index 37ff04de..6de1c2af 100644 --- a/web/src/js/ducks/settings.js +++ b/web/src/js/ducks/settings.js @@ -1,31 +1,24 @@ -import { StoreCmds } from '../actions' import { addLogEntry } from './eventLog' export const WS_MSG_TYPE = 'settings' -export const WS_MSG_CMD_RESET = 'reset' export const WS_MSG_CMD_UPDATE = 'update' export const BEGIN_FETCH = 'SETTINGS_BEGIN_FETCH' export const FETCHED = 'SETTINGS_FETCHED' -export const RESET = 'SETTINGS_RESET' -export const FETCH_ERROR = 'SETTINGS_FETCH_ERROR' export const RECV_WS_MSG = 'SETTINGS_RECV_WS_MSG' -const defaultState = { settings: {}, pendings: null, req: null } +const defaultState = { settings: {}, pendings: null } export default function reduce(state = defaultState, action) { switch (action.type) { case BEGIN_FETCH: - return { ...state, pendings: [], req: action.req } + return { ...state, pendings: [] } case FETCHED: const pendings = state.pendings || [] return { ...state, pendings: null, settings: pendings.reduce(reduceData, action.data) } - case RESET: - return { ...state, pendings: null, settings: action.data || {} } - case RECV_WS_MSG: if (state.pendings) { return { ...state, pendings: state.pendings.concat(action) } @@ -40,11 +33,8 @@ export default function reduce(state = defaultState, action) { function reduceData(data, action) { switch (action.cmd) { - case WS_MSG_CMD_RESET: - return action.data || {} - case WS_MSG_CMD_UPDATE: - return _.merge({}, data, action.data) + return { ...data, ...action.data } default: return data @@ -53,40 +43,22 @@ function reduceData(data, action) { export function fetch() { return dispatch => { - const req = $.getJSON('/settings') + dispatch({ type: BEGIN_FETCH }) + return $.getJSON('/settings') .done(msg => dispatch(handleFetchResponse(msg.data))) .fail(error => dispatch(handleFetchError(error))); - - dispatch({ type: BEGIN_FETCH, req }) - - return req } } export function handleWsMsg(msg) { - return (dispatch, getState) => { - if (msg.cmd !== StoreCmds.RESET) { - return dispatch({ type: RECV_WS_MSG, cmd: msg.cmd, data: msg.data }) - } - const req = getState().settings.req - if (req) { - req.abort() - } - dispatch(reset(msg.data)) - } + return { type: RECV_WS_MSG, cmd: msg.cmd, data: msg.data } } export function handleFetchResponse(data) { return { type: FETCHED, data } } -export function reset(data) { - return { type: RESET, data } -} - export function handleFetchError(error) { - return (dispatch, getState) => { - dispatch(addLogEntry(error.stack || error.message || error)) - dispatch({ type: FETCH_ERROR, error }) - } + // @todo let eventLog subscribe to SettingsActions.FETCH_ERROR + return addLogEntry(error.stack || error.message || error) } |