aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/components/ContentView
diff options
context:
space:
mode:
authorClemens <cle1000.cb@gmail.com>2016-07-28 17:10:06 +0200
committerClemens <cle1000.cb@gmail.com>2016-07-28 17:10:06 +0200
commitad5bebeda0f1da890d8ed94b6096515e03f44a25 (patch)
treecd5640aa7c77d59f8be9fe6abe31ffdf66435a5e /web/src/js/components/ContentView
parent3e6c284757ffbb42aef34281567cf1adedd21ae9 (diff)
downloadmitmproxy-ad5bebeda0f1da890d8ed94b6096515e03f44a25.tar.gz
mitmproxy-ad5bebeda0f1da890d8ed94b6096515e03f44a25.tar.bz2
mitmproxy-ad5bebeda0f1da890d8ed94b6096515e03f44a25.zip
mitmproxy.contentviews added
Diffstat (limited to 'web/src/js/components/ContentView')
-rw-r--r--web/src/js/components/ContentView/ContentLoader.jsx2
-rw-r--r--web/src/js/components/ContentView/ContentViews.jsx42
-rw-r--r--web/src/js/components/ContentView/ViewSelector.jsx2
3 files changed, 20 insertions, 26 deletions
diff --git a/web/src/js/components/ContentView/ContentLoader.jsx b/web/src/js/components/ContentView/ContentLoader.jsx
index 9babb8f7..e7a6f379 100644
--- a/web/src/js/components/ContentView/ContentLoader.jsx
+++ b/web/src/js/components/ContentView/ContentLoader.jsx
@@ -53,7 +53,7 @@ export default View => class extends React.Component {
return this.setState({request: undefined, content: ""})
}
- let requestUrl = MessageUtils.getContentURL(props.flow, props.message, props.contentView)
+ let requestUrl = MessageUtils.getContentURL(props.flow, props.message, (View.name == 'ViewServer' ? props.contentView : undefined))
// We use XMLHttpRequest instead of fetch() because fetch() is not (yet) abortable.
let request = new XMLHttpRequest();
diff --git a/web/src/js/components/ContentView/ContentViews.jsx b/web/src/js/components/ContentView/ContentViews.jsx
index 732f9f5e..89e97267 100644
--- a/web/src/js/components/ContentView/ContentViews.jsx
+++ b/web/src/js/components/ContentView/ContentViews.jsx
@@ -28,26 +28,8 @@ function ViewRaw({ content, readonly, onChange }) {
}
ViewRaw = ContentLoader(ViewRaw)
-
-const isJSON = /^application\/json$/i
-ViewJSON.matches = msg => isJSON.test(MessageUtils.getContentType(msg))
-ViewJSON.propTypes = {
- content: React.PropTypes.string.isRequired,
-}
-function ViewJSON({ content }) {
- let json = content
- try {
- json = JSON.stringify(JSON.parse(content), null, 2);
- } catch (e) {
- // @noop
- }
- return <pre>{json}</pre>
-}
-ViewJSON = ContentLoader(ViewJSON)
-
-
ViewAuto.matches = () => false
-ViewAuto.findView = msg => [ViewImage, ViewJSON, ViewRaw].find(v => v.matches(msg)) || ViewRaw
+ViewAuto.findView = msg => [ViewImage, ViewRaw].find(v => v.matches(msg)) || ViewRaw
ViewAuto.propTypes = {
message: React.PropTypes.object.isRequired,
flow: React.PropTypes.object.isRequired,
@@ -57,14 +39,26 @@ function ViewAuto({ message, flow, readonly, onChange }) {
return <View message={message} flow={flow} readonly={readonly} onChange={onChange}/>
}
-function ViewServer({contentView, content}){
+function ViewServer({content, contentView}){
+ let data = JSON.parse(content)
return <div>
- <pre>load from server this view: {contentView}</pre>
- <pre>{content}</pre>
+ {contentView != data.description &&
+ <div className="alert alert-warning">{data.description}</div>
+ }
+ <pre>
+ {data.lines.map((line, i) =>
+ <div key={`line${i}`}>
+ {line.map((tuple, j) =>
+ <span key={`tuple${j}`} className={tuple[0]}>
+ {tuple[1]}
+ </span>
+ )}
+ </div>
+ )}
+ </pre>
</div>
-
}
ViewServer = ContentLoader(ViewServer)
-export { ViewImage, ViewRaw, ViewAuto, ViewJSON, ViewServer }
+export { ViewImage, ViewRaw, ViewAuto, ViewServer }
diff --git a/web/src/js/components/ContentView/ViewSelector.jsx b/web/src/js/components/ContentView/ViewSelector.jsx
index c3e1e105..423cc157 100644
--- a/web/src/js/components/ContentView/ViewSelector.jsx
+++ b/web/src/js/components/ContentView/ViewSelector.jsx
@@ -38,7 +38,7 @@ function ViewSelector({ message, contentViews }) {
<ViewButton name="ViewAuto">auto: {autoViewName}</ViewButton>
{Object.keys(ContentViews).map(name =>
- name !== "ViewAuto" &&
+ name !== "ViewAuto" && name !== "ViewServer" &&
<ViewButton key={name} name={name}>{name.toLowerCase().replace('view', '')}</ViewButton>
)}