aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/flowview/nav.js
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2015-03-22 13:33:11 +1300
committerAldo Cortesi <aldo@nullcube.com>2015-03-22 13:33:11 +1300
commit3bf4feb213adf2b9829cd5452ca365e4be7ca10c (patch)
tree572463b2e5223499a977c4da2e3ce8118d373943 /web/src/js/components/flowview/nav.js
parent89383e9c138f68caf1cc394174250c133d21aa04 (diff)
parent89d66360d6f7caa9760fe56fa146396b1b4251dc (diff)
downloadmitmproxy-3bf4feb213adf2b9829cd5452ca365e4be7ca10c.tar.gz
mitmproxy-3bf4feb213adf2b9829cd5452ca365e4be7ca10c.tar.bz2
mitmproxy-3bf4feb213adf2b9829cd5452ca365e4be7ca10c.zip
Merge branch 'master' of ssh.github.com:mitmproxy/mitmproxy
Diffstat (limited to 'web/src/js/components/flowview/nav.js')
-rw-r--r--web/src/js/components/flowview/nav.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/web/src/js/components/flowview/nav.js b/web/src/js/components/flowview/nav.js
new file mode 100644
index 00000000..46eda707
--- /dev/null
+++ b/web/src/js/components/flowview/nav.js
@@ -0,0 +1,61 @@
+var React = require("react");
+
+var actions = require("../../actions.js");
+
+var NavAction = React.createClass({
+ onClick: function (e) {
+ e.preventDefault();
+ this.props.onClick();
+ },
+ render: function () {
+ return (
+ <a title={this.props.title}
+ href="#"
+ className="nav-action"
+ onClick={this.onClick}>
+ <i className={"fa fa-fw " + this.props.icon}></i>
+ </a>
+ );
+ }
+});
+
+var Nav = React.createClass({
+ render: function () {
+ var flow = this.props.flow;
+
+ var tabs = this.props.tabs.map(function (e) {
+ var str = e.charAt(0).toUpperCase() + e.slice(1);
+ var className = this.props.active === e ? "active" : "";
+ var onClick = function (event) {
+ this.props.selectTab(e);
+ event.preventDefault();
+ }.bind(this);
+ return <a key={e}
+ href="#"
+ className={className}
+ onClick={onClick}>{str}</a>;
+ }.bind(this));
+
+ var acceptButton = null;
+ if(flow.intercepted){
+ acceptButton = <NavAction title="[a]ccept intercepted flow" icon="fa-play" onClick={actions.FlowActions.accept.bind(null, flow)} />;
+ }
+ var revertButton = null;
+ if(flow.modified){
+ revertButton = <NavAction title="revert changes to flow [V]" icon="fa-history" onClick={actions.FlowActions.revert.bind(null, flow)} />;
+ }
+
+ return (
+ <nav ref="head" className="nav-tabs nav-tabs-sm">
+ {tabs}
+ <NavAction title="[d]elete flow" icon="fa-trash" onClick={actions.FlowActions.delete.bind(null, flow)} />
+ <NavAction title="[D]uplicate flow" icon="fa-copy" onClick={actions.FlowActions.duplicate.bind(null, flow)} />
+ <NavAction disabled title="[r]eplay flow" icon="fa-repeat" onClick={actions.FlowActions.replay.bind(null, flow)} />
+ {acceptButton}
+ {revertButton}
+ </nav>
+ );
+ }
+});
+
+module.exports = Nav; \ No newline at end of file