From 902cd255d4fae74eb48cf501d580116b753e1647 Mon Sep 17 00:00:00 2001 From: Clemens Brunner Date: Sat, 14 May 2016 13:40:11 +0200 Subject: added UI for options menu (#1130) * added UI for options menu * update UI for options menu * update UI for options v2 * update UI for options v2 * added new btn class * little changes * little changes * merge * deleted branch * change menu button class --- web/src/css/header.less | 4 +++ web/src/js/components/common.js | 14 ++++++++- web/src/js/components/header.js | 70 +++++++++++++++++++++++++++++++---------- 3 files changed, 71 insertions(+), 17 deletions(-) (limited to 'web') diff --git a/web/src/css/header.less b/web/src/css/header.less index 8fa5e37f..065471d1 100644 --- a/web/src/css/header.less +++ b/web/src/css/header.less @@ -30,4 +30,8 @@ header { max-height: 500px; overflow-y: auto; } +} + +.menu .btn { + margin: 2px 2px 2px 2px; } \ No newline at end of file diff --git a/web/src/js/components/common.js b/web/src/js/components/common.js index ad97ab38..21ca454f 100644 --- a/web/src/js/components/common.js +++ b/web/src/js/components/common.js @@ -131,4 +131,16 @@ export var Splitter = React.createClass({ ); } -}); \ No newline at end of file +}); + +export const ToggleComponent = (props) => +
+ {props.name} +
+ +ToggleComponent.propTypes = { + name: React.PropTypes.string.isRequired, + onToggleChanged: React.PropTypes.func.isRequired +} \ No newline at end of file diff --git a/web/src/js/components/header.js b/web/src/js/components/header.js index b4110851..226cb61f 100644 --- a/web/src/js/components/header.js +++ b/web/src/js/components/header.js @@ -4,7 +4,7 @@ import $ from "jquery"; import Filt from "../filt/filt.js"; import {Key} from "../utils.js"; -import {Router} from "./common.js"; +import {Router, ToggleComponent} from "./common.js"; import {SettingsActions, FlowActions} from "../actions.js"; import {Query} from "../actions.js"; @@ -227,7 +227,6 @@ var ViewMenu = React.createClass({ mixins: [Router], toggleEventLog: function () { var d = {}; - if (this.getQuery()[Query.SHOW_EVENTLOG]) { d[Query.SHOW_EVENTLOG] = undefined; } else { @@ -235,24 +234,63 @@ var ViewMenu = React.createClass({ } this.updateLocation(undefined, d); + console.log('toggleevent'); }, render: function () { - var showEventLog = this.getQuery()[Query.SHOW_EVENTLOG]; - return ( -
- - -
- ); + var showEventLog = this.getQuery()[Query.SHOW_EVENTLOG]; + return ( +
+ +
+ ); } }); +class OptionMenu extends React.Component{ + static title = "Options"; + constructor(props){ + super(props); + this.state = { + options : + [ + {name: "--host", checked: true}, + {name: "--no-upstream-cert", checked: false}, + {name: "--http2", checked: false}, + {name: "--anticache", checked: false}, + {name: "--anticomp", checked: false}, + {name: "--stickycookie", checked: true}, + {name: "--stickyauth", checked: false}, + {name: "--stream", checked: false} + ] + } + } + setOption(entry){ + console.log(entry.name);//TODO: get options from outside and remove state + entry.checked = !entry.checked; + this.setState({options: this.state.options}); + } + render() { + return ( +
+ {this.state.options.map((entry, i) => { + return ( + this.setOption(entry)}/> + ); + })} +
+ ); + } +} + + var ReportsMenu = React.createClass({ statics: { title: "Visualization", @@ -349,7 +387,7 @@ var FileMenu = React.createClass({ }); -var header_entries = [MainMenu, ViewMenu /*, ReportsMenu */]; +var header_entries = [MainMenu, ViewMenu, OptionMenu /*, ReportsMenu */]; export var Header = React.createClass({ @@ -380,7 +418,7 @@ export var Header = React.createClass({ href="#" className={className} onClick={this.handleClick.bind(this, entry)}> - { entry.title} + {entry.title} ); }.bind(this)); -- cgit v1.2.3