aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason <jason.daurus@gmail.com>2016-06-17 22:02:34 +0800
committerJason <jason.daurus@gmail.com>2016-06-17 22:12:32 +0800
commit965b27b52942cc6bf082355a1540bc0f960f1043 (patch)
treeb9d35e94ef0807719cc9005e934160316cf30f91
parentc82d27b2a215c075dba71254cafdc86e98e0f2d9 (diff)
downloadmitmproxy-965b27b52942cc6bf082355a1540bc0f960f1043.tar.gz
mitmproxy-965b27b52942cc6bf082355a1540bc0f960f1043.tar.bz2
mitmproxy-965b27b52942cc6bf082355a1540bc0f960f1043.zip
[web] simplify settings
-rw-r--r--mitmproxy/web/static/app.js4
-rw-r--r--web/src/js/ducks/settings.js44
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)
}