From 795e76eee298e23079f7e979119defc4c187b833 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Sun, 11 Dec 2016 17:37:11 +0100 Subject: [web] style options menu The other menus are WIP. --- web/src/js/components/FlowView/ToggleEdit.jsx | 4 +- web/src/js/components/Header.jsx | 7 +- web/src/js/components/Header/FlowMenu.jsx | 15 ++-- web/src/js/components/Header/MainMenu.jsx | 21 +++-- web/src/js/components/Header/MenuToggle.jsx | 69 ++++++++++++++++ web/src/js/components/Header/OptionMenu.jsx | 112 +++++++++++--------------- web/src/js/components/Header/ViewMenu.jsx | 32 -------- web/src/js/components/common/DocsLink.jsx | 14 ++++ 8 files changed, 151 insertions(+), 123 deletions(-) create mode 100644 web/src/js/components/Header/MenuToggle.jsx delete mode 100644 web/src/js/components/Header/ViewMenu.jsx create mode 100644 web/src/js/components/common/DocsLink.jsx (limited to 'web/src/js/components') diff --git a/web/src/js/components/FlowView/ToggleEdit.jsx b/web/src/js/components/FlowView/ToggleEdit.jsx index 9016348e..6a691a3d 100644 --- a/web/src/js/components/FlowView/ToggleEdit.jsx +++ b/web/src/js/components/FlowView/ToggleEdit.jsx @@ -14,11 +14,11 @@ function ToggleEdit({ isEdit, startEdit, stopEdit, flow, modifiedFlow }) { return (
{isEdit ? - stopEdit(flow, modifiedFlow)}> + stopEdit(flow, modifiedFlow)}> : - startEdit(flow)}> + startEdit(flow)}> } diff --git a/web/src/js/components/Header.jsx b/web/src/js/components/Header.jsx index 702786e6..1500db1b 100644 --- a/web/src/js/components/Header.jsx +++ b/web/src/js/components/Header.jsx @@ -2,14 +2,13 @@ import React, { Component, PropTypes } from 'react' import { connect } from 'react-redux' import classnames from 'classnames' import MainMenu from './Header/MainMenu' -import ViewMenu from './Header/ViewMenu' import OptionMenu from './Header/OptionMenu' import FileMenu from './Header/FileMenu' import FlowMenu from './Header/FlowMenu' import {setActiveMenu} from '../ducks/ui/header' class Header extends Component { - static entries = [MainMenu, ViewMenu, OptionMenu] + static entries = [MainMenu, OptionMenu] handleClick(active, e) { e.preventDefault() @@ -38,9 +37,9 @@ class Header extends Component { ))} -
+ -
+ ) } diff --git a/web/src/js/components/Header/FlowMenu.jsx b/web/src/js/components/Header/FlowMenu.jsx index e78a49aa..e0c59afe 100644 --- a/web/src/js/components/Header/FlowMenu.jsx +++ b/web/src/js/components/Header/FlowMenu.jsx @@ -18,15 +18,12 @@ FlowMenu.propTypes = { function FlowMenu({ flow, acceptFlow, replayFlow, duplicateFlow, removeFlow, revertFlow }) { return (
-
-
-
+
) } diff --git a/web/src/js/components/Header/MainMenu.jsx b/web/src/js/components/Header/MainMenu.jsx index 5ab3fa9d..6a4e12bf 100644 --- a/web/src/js/components/Header/MainMenu.jsx +++ b/web/src/js/components/Header/MainMenu.jsx @@ -1,20 +1,17 @@ -import React, { Component, PropTypes } from 'react' -import { connect } from 'react-redux' -import FilterInput from './FilterInput' -import { update as updateSettings } from '../../ducks/settings' -import { setFilter, setHighlight } from '../../ducks/flows' +import React, { Component, PropTypes } from "react" +import { connect } from "react-redux" +import FilterInput from "./FilterInput" +import { update as updateSettings } from "../../ducks/settings" +import { setFilter, setHighlight } from "../../ducks/flows" MainMenu.title = "Start" export default function MainMenu() { return ( -
-
- - - -
-
+
+ + +
) } diff --git a/web/src/js/components/Header/MenuToggle.jsx b/web/src/js/components/Header/MenuToggle.jsx new file mode 100644 index 00000000..726db7bd --- /dev/null +++ b/web/src/js/components/Header/MenuToggle.jsx @@ -0,0 +1,69 @@ +import { PropTypes } from "react" +import { connect } from "react-redux" +import { update as updateSettings } from "../../ducks/settings" +import { toggleVisibility } from "../../ducks/eventLog" + +MenuToggle.propTypes = { + value: PropTypes.bool.isRequired, + onChange: PropTypes.func.isRequired, + children: PropTypes.node.isRequired, +} + +export function MenuToggle({ value, onChange, children }) { + return ( +
+ +
+ ) +} + + +SettingsToggle.propTypes = { + setting: PropTypes.string.isRequired, + children: PropTypes.node.isRequired, +} + +export function SettingsToggle({ setting, children, settings, updateSettings }) { + return ( + updateSettings({ [setting]: !settings[setting] })} + > + {children} + + ) +} +SettingsToggle = connect( + state => ({ + settings: state.settings, + }), + { + updateSettings, + } +)(SettingsToggle) + + +export function EventlogToggle({ toggleVisibility, eventLogVisible }) { + return ( + + Display Event Log + + ) +} +EventlogToggle = connect( + state => ({ + eventLogVisible: state.eventLog.visible, + }), + { + toggleVisibility, + } +)(EventlogToggle) + diff --git a/web/src/js/components/Header/OptionMenu.jsx b/web/src/js/components/Header/OptionMenu.jsx index f1d19f48..4fb5dc1f 100644 --- a/web/src/js/components/Header/OptionMenu.jsx +++ b/web/src/js/components/Header/OptionMenu.jsx @@ -1,75 +1,59 @@ import React, { PropTypes } from 'react' import { connect } from 'react-redux' -import ToggleButton from '../common/ToggleButton' -import ToggleInputButton from '../common/ToggleInputButton' -import { update as updateSettings } from '../../ducks/settings' +import {SettingsToggle, EventlogToggle} from './MenuToggle' +import DocsLink from '../common/DocsLink' OptionMenu.title = 'Options' -OptionMenu.propTypes = { - settings: PropTypes.object.isRequired, - updateSettings: PropTypes.func.isRequired, -} - -function OptionMenu({ settings, updateSettings }) { +export default function OptionMenu() { return (
-
- updateSettings({ showhost: !settings.showhost })} - /> - updateSettings({ no_upstream_cert: !settings.no_upstream_cert })} - /> - updateSettings({ rawtcp: !settings.rawtcp })} - /> - updateSettings({ http2: !settings.http2 })} - /> - updateSettings({ websocket: !settings.websocket })} - /> - updateSettings({ anticache: !settings.anticache })} - /> - updateSettings({ anticomp: !settings.anticomp })} - /> - updateSettings({ stickyauth: !settings.stickyauth ? txt : null })} - /> - updateSettings({ stickycookie: !settings.stickycookie ? txt : null })} - /> - updateSettings({ stream_large_bodies: !settings.stream_large_bodies ? txt : null })} - /> +
+ HTTP/2.0 + WebSockets + Raw TCP +
Protocol Support
+
+
+ + Disable Caching + + + Disable Compression + +
+
HTTP Options
-
+
+ + Use Host Header + + +
+
View Options
+
+ { /* + updateSettings({ no_upstream_cert: !settings.no_upstream_cert })} + /> + updateSettings({ stickyauth: !settings.stickyauth ? txt : null })} + /> + updateSettings({ stickycookie: !settings.stickycookie ? txt : null })} + /> + updateSettings({ stream_large_bodies: !settings.stream_large_bodies ? txt : null })} + /> + */}
) } - -export default connect( - state => ({ - settings: state.settings, - }), - { - updateSettings, - } -)(OptionMenu) diff --git a/web/src/js/components/Header/ViewMenu.jsx b/web/src/js/components/Header/ViewMenu.jsx deleted file mode 100644 index 22b370d1..00000000 --- a/web/src/js/components/Header/ViewMenu.jsx +++ /dev/null @@ -1,32 +0,0 @@ -import React, { PropTypes } from 'react' -import { connect } from 'react-redux' -import ToggleButton from '../common/ToggleButton' -import { toggleVisibility } from '../../ducks/eventLog' - -ViewMenu.title = 'View' -ViewMenu.route = 'flows' - -ViewMenu.propTypes = { - eventLogVisible: PropTypes.bool.isRequired, - toggleEventLog: PropTypes.func.isRequired, -} - -function ViewMenu({ eventLogVisible, toggleEventLog }) { - return ( -
-
- -
-
-
- ) -} - -export default connect( - state => ({ - eventLogVisible: state.eventLog.visible, - }), - { - toggleEventLog: toggleVisibility, - } -)(ViewMenu) diff --git a/web/src/js/components/common/DocsLink.jsx b/web/src/js/components/common/DocsLink.jsx new file mode 100644 index 00000000..182811a3 --- /dev/null +++ b/web/src/js/components/common/DocsLink.jsx @@ -0,0 +1,14 @@ +import { PropTypes } from 'react' + +DocsLink.propTypes = { + resource: PropTypes.string.isRequired, +} + +export default function DocsLink({ children, resource }) { + let url = `http://docs.mitmproxy.org/en/stable/${resource}` + return ( + + {children || } + + ) +} -- cgit v1.2.3