diff options
author | Maximilian Hils <git@maximilianhils.com> | 2014-12-26 03:10:24 +0100 |
---|---|---|
committer | Maximilian Hils <git@maximilianhils.com> | 2014-12-26 03:10:24 +0100 |
commit | 3e63107e9473e3ec6676c047171a5d23c79b7dcd (patch) | |
tree | 547f90a865ec102ae5f7f90b07e535b6a7b0d6ac /libmproxy/web/static/js/app.js | |
parent | 1f454b577f7db434d79388eb101006b065f62a2b (diff) | |
download | mitmproxy-3e63107e9473e3ec6676c047171a5d23c79b7dcd.tar.gz mitmproxy-3e63107e9473e3ec6676c047171a5d23c79b7dcd.tar.bz2 mitmproxy-3e63107e9473e3ec6676c047171a5d23c79b7dcd.zip |
web: integrate filter docs
Diffstat (limited to 'libmproxy/web/static/js/app.js')
-rw-r--r-- | libmproxy/web/static/js/app.js | 54 |
1 files changed, 46 insertions, 8 deletions
diff --git a/libmproxy/web/static/js/app.js b/libmproxy/web/static/js/app.js index 984db943..c054baa2 100644 --- a/libmproxy/web/static/js/app.js +++ b/libmproxy/web/static/js/app.js @@ -2632,6 +2632,48 @@ var VirtualScrollMixin = { } }, }; +var FilterDocs = React.createClass({displayName: 'FilterDocs', + statics: { + xhr: false, + doc: false + }, + componentWillMount: function () { + if (!FilterDocs.doc) { + FilterDocs.xhr = $.getJSON("/filter-help").done(function (doc) { + FilterDocs.doc = doc; + FilterDocs.xhr = false; + }); + } + if (FilterDocs.xhr) { + FilterDocs.xhr.done(function () { + this.forceUpdate(); + }.bind(this)); + } + }, + render: function () { + if (!FilterDocs.doc) { + return React.createElement("i", {className: "fa fa-spinner fa-spin"}); + } else { + var commands = FilterDocs.doc.commands.map(function (c) { + return React.createElement("tr", null, + React.createElement("td", null, c[0].replace(" ", '\u00a0')), + React.createElement("td", null, c[1]) + ); + }); + commands.push(React.createElement("tr", null, + React.createElement("td", {colSpan: "2"}, + React.createElement("a", {href: "https://mitmproxy.org/doc/features/filters.html", + target: "_blank"}, + React.createElement("i", {className: "fa fa-external-link"}), + " mitmproxy docs") + ) + )); + return React.createElement("table", {className: "table table-condensed"}, + React.createElement("tbody", null, commands) + ); + } + } +}); var FilterInput = React.createClass({displayName: 'FilterInput', getInitialState: function () { // Consider both focus and mouseover for showing/hiding the tooltip, @@ -2675,10 +2717,7 @@ var FilterInput = React.createClass({displayName: 'FilterInput', return desc; } else { return ( - React.createElement("a", {href: "https://mitmproxy.org/doc/features/filters.html", target: "_blank"}, - React.createElement("i", {className: "fa fa-external-link"}), - "Filter Documentation" - ) + React.createElement(FilterDocs, null) ); } }, @@ -2768,28 +2807,27 @@ var MainMenu = React.createClass({displayName: 'MainMenu', return ( React.createElement("div", null, - React.createElement("form", {className: "form-inline", style: {display: "inline"}}, + React.createElement("div", {className: "menu-row"}, React.createElement(FilterInput, { placeholder: "Filter", type: "filter", color: "black", value: filter, onChange: this.onFilterChange}), - React.createElement("span", null, " "), React.createElement(FilterInput, { placeholder: "Highlight", type: "tag", color: "hsl(48, 100%, 50%)", value: highlight, onChange: this.onHighlightChange}), - React.createElement("span", null, " "), React.createElement(FilterInput, { placeholder: "Intercept", type: "pause", color: "hsl(208, 56%, 53%)", value: intercept, onChange: this.onInterceptChange}) - ) + ), + React.createElement("div", {className: "clearfix"}) ) ); } |