diff options
Diffstat (limited to 'web/src/js')
| -rw-r--r-- | web/src/js/components/common.js | 14 | ||||
| -rw-r--r-- | web/src/js/components/header.js | 70 | 
2 files changed, 67 insertions, 17 deletions
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({              </div>          );      } -});
\ No newline at end of file +}); + +export const ToggleComponent = (props) => +    <div +      className={"btn " + (props.checked ? "btn-primary" : "btn-default")} +      onClick={props.onToggleChanged}> +      <span><i className={"fa " + (props.checked ? "fa-check-square-o" : "fa-square-o")}></i> {props.name}</span> +    </div> + +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 ( -            <div> -                <button -                    className={"btn " + (showEventLog ? "btn-primary" : "btn-default")} -                    onClick={this.toggleEventLog}> -                    <i className="fa fa-database"></i> -                 Show Eventlog -                </button> -                <span> </span> -            </div> -        ); +      var showEventLog = this.getQuery()[Query.SHOW_EVENTLOG]; +      return ( +        <div> +          <ToggleComponent +            checked={showEventLog} +            name = "Show Eventlog" +            onToggleChanged={this.toggleEventLog}/> +        </div> +      );      }  }); +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 ( +        <div> +          {this.state.options.map((entry, i) => { +            return ( +              <ToggleComponent +                key={i} +                checked={entry.checked} +                name = {entry.name} +                onToggleChanged={() => this.setOption(entry)}/> +            ); +          })} +        </div> +      ); +    } +} + +  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}                  </a>              );          }.bind(this));  | 
