diff options
author | Clemens <cle1000.cb@gmail.com> | 2016-08-05 12:47:34 +0200 |
---|---|---|
committer | Clemens <cle1000.cb@gmail.com> | 2016-08-05 12:47:34 +0200 |
commit | 9b0b007a5da75d70ec25b141c2a47b1b0010f5a3 (patch) | |
tree | 373d864b95f8adfff875a24c3c2284363a607994 /web/src/js/components | |
parent | a8aa1f2d1c8fe19313ca8abe07f9d6aa431fc3c3 (diff) | |
download | mitmproxy-9b0b007a5da75d70ec25b141c2a47b1b0010f5a3.tar.gz mitmproxy-9b0b007a5da75d70ec25b141c2a47b1b0010f5a3.tar.bz2 mitmproxy-9b0b007a5da75d70ec25b141c2a47b1b0010f5a3.zip |
change some style
Diffstat (limited to 'web/src/js/components')
-rw-r--r-- | web/src/js/components/ContentView.jsx | 18 | ||||
-rw-r--r-- | web/src/js/components/ContentView/ContentViewOptions.jsx | 31 | ||||
-rw-r--r-- | web/src/js/components/ContentView/ContentViews.jsx | 13 | ||||
-rw-r--r-- | web/src/js/components/FlowView.jsx | 2 | ||||
-rw-r--r-- | web/src/js/components/FlowView/Messages.jsx | 96 |
5 files changed, 97 insertions, 63 deletions
diff --git a/web/src/js/components/ContentView.jsx b/web/src/js/components/ContentView.jsx index 128d8e81..398438ab 100644 --- a/web/src/js/components/ContentView.jsx +++ b/web/src/js/components/ContentView.jsx @@ -2,12 +2,10 @@ import React, { Component, PropTypes } from 'react' import { connect } from 'react-redux' import * as ContentViews from './ContentView/ContentViews' import * as MetaViews from './ContentView/MetaViews' -import ViewSelector from './ContentView/ViewSelector' -import UploadContentButton from './ContentView/UploadContentButton' -import DownloadContentButton from './ContentView/DownloadContentButton' import ShowFullContentButton from './ContentView/ShowFullContentButton' -import { setContentView, displayLarge, updateEdit } from '../ducks/ui/flow' + +import { displayLarge, updateEdit } from '../ducks/ui/flow' ContentView.propTypes = { // It may seem a bit weird at the first glance: @@ -20,7 +18,7 @@ ContentView.propTypes = { ContentView.isContentTooLarge = msg => msg.contentLength > 1024 * 1024 * (ContentViews.ViewImage.matches(msg) ? 10 : 0.2) function ContentView(props) { - const { flow, message, contentView, isDisplayLarge, displayLarge, uploadContent, onContentChange, readonly, contentViewDescription } = props + const { flow, message, contentView, isDisplayLarge, displayLarge, onContentChange, readonly } = props if (message.contentLength === 0 && readonly) { return <MetaViews.ContentEmpty {...props}/> @@ -39,15 +37,6 @@ function ContentView(props) { <div className="contentview"> <View flow={flow} message={message} contentView={contentView} readonly={readonly} onChange={onContentChange}/> <ShowFullContentButton/> - <div className="view-options footer navbar-fixed-bottom"> - <ViewSelector message={message}/> - - <DownloadContentButton flow={flow} message={message}/> - - <UploadContentButton uploadContent={uploadContent}/> - - <span>{contentViewDescription}</span> - </div> </div> ) } @@ -56,7 +45,6 @@ export default connect( state => ({ contentView: state.ui.flow.contentView, isDisplayLarge: state.ui.flow.displayLarge, - contentViewDescription: state.ui.flow.viewDescription }), { displayLarge, diff --git a/web/src/js/components/ContentView/ContentViewOptions.jsx b/web/src/js/components/ContentView/ContentViewOptions.jsx new file mode 100644 index 00000000..fed3a088 --- /dev/null +++ b/web/src/js/components/ContentView/ContentViewOptions.jsx @@ -0,0 +1,31 @@ +import React, { PropTypes } from 'react' +import { connect } from 'react-redux' +import ViewSelector from './ViewSelector' +import UploadContentButton from './UploadContentButton' +import DownloadContentButton from './DownloadContentButton' + +ContentViewOptions.propTypes = { + flow: React.PropTypes.object.isRequired, + message: React.PropTypes.object.isRequired, +} + +function ContentViewOptions(props) { + const { flow, message, uploadContent, readonly, contentViewDescription } = props + return ( + <div className="view-options"> + <ViewSelector message={message}/> + + <DownloadContentButton flow={flow} message={message}/> + + <UploadContentButton uploadContent={uploadContent}/> + + <span>{contentViewDescription}</span> + </div> + ) +} + +export default connect( + state => ({ + contentViewDescription: state.ui.flow.viewDescription + }) +)(ContentViewOptions) diff --git a/web/src/js/components/ContentView/ContentViews.jsx b/web/src/js/components/ContentView/ContentViews.jsx index 43aece46..3db77af4 100644 --- a/web/src/js/components/ContentView/ContentViews.jsx +++ b/web/src/js/components/ContentView/ContentViews.jsx @@ -30,9 +30,8 @@ function Edit({ content, onChange }) { Edit = ContentLoader(Edit) class ViewServer extends Component { - constructor(props){ - super(props) - this.maxLines = 80 + static defaultProps = { + maxLines: 80, } componentWillMount(){ @@ -50,14 +49,12 @@ class ViewServer extends Component { props.setContentViewDescription(props.contentView != this.data.description ? this.data.description : '') - let isFullContentShown = this.data.lines.length < this.maxLines + let isFullContentShown = this.data.lines.length < props.maxLines if (isFullContentShown) props.setShowFullContent(true) } render() { - const {content, contentView, message} = this.props - - let lines = this.props.showFullContent ? this.data.lines : this.data.lines.slice(0, this.maxLines) - + const {content, contentView, message, maxLines} = this.props + let lines = this.props.showFullContent ? this.data.lines : this.data.lines.slice(0, maxLines) return <div> <pre> {lines.map((line, i) => diff --git a/web/src/js/components/FlowView.jsx b/web/src/js/components/FlowView.jsx index a80dc040..72cffdfe 100644 --- a/web/src/js/components/FlowView.jsx +++ b/web/src/js/components/FlowView.jsx @@ -71,7 +71,7 @@ export default class FlowView extends Component { const Tab = FlowView.allTabs[_.capitalize(active)] return ( - <div className="flow-detail" onScroll={this.adjustHead}> + <div className="flow-detail"> <Nav flow={flow} tabs={tabs} diff --git a/web/src/js/components/FlowView/Messages.jsx b/web/src/js/components/FlowView/Messages.jsx index 9de25b5b..27644823 100644 --- a/web/src/js/components/FlowView/Messages.jsx +++ b/web/src/js/components/FlowView/Messages.jsx @@ -5,6 +5,7 @@ import { connect } from 'react-redux' import { RequestUtils, isValidHttpVersion, parseUrl } from '../../flow/utils.js' import { formatTimeStamp } from '../../utils.js' import ContentView from '../ContentView' +import ContentViewOptions from '../ContentView/ContentViewOptions' import ValidateEditor from '../ValueEditor/ValidateEditor' import ValueEditor from '../ValueEditor/ValueEditor' @@ -81,27 +82,35 @@ const Message = connect( export class Request extends Component { render() { const { flow, isEdit, updateFlow, uploadContent } = this.props - + let noContent = !isEdit && (flow.request.contentLength == 0 || flow.request.contentLength == null) return ( - <section className="request"> - <ToggleEdit/> - <RequestLine - flow={flow} - readonly={!isEdit} - updateFlow={updateFlow}/> - <Headers - message={flow.request} - readonly={!isEdit} - onChange={headers => updateFlow({ request: { headers } })} - /> - - <hr/> - <ContentView - readonly={!isEdit} - flow={flow} - onContentChange={content => updateFlow({ request: {content}})} - uploadContent={content => uploadContent(flow, content, "request")} - message={flow.request}/> + <section className="request flowview-container"> + <div className="flowview-body"> + <ToggleEdit/> + <RequestLine + flow={flow} + readonly={!isEdit} + updateFlow={updateFlow}/> + <Headers + message={flow.request} + readonly={!isEdit} + onChange={headers => updateFlow({ request: { headers } })} + /> + + <hr/> + <ContentView + readonly={!isEdit} + flow={flow} + onContentChange={content => updateFlow({ request: {content}})} + message={flow.request}/> + </div> + <div hidden={noContent} className="flowview-footer"> + <ContentViewOptions + flow={flow} + readonly={!isEdit} + message={flow.request} + uploadContent={content => uploadContent(flow, content, "request")}/> + </div> </section> ) } @@ -137,27 +146,36 @@ Request = Message(Request) export class Response extends Component { render() { const { flow, isEdit, updateFlow, uploadContent } = this.props + let noContent = !isEdit && (flow.response.contentLength == 0 || flow.response.contentLength == null) return ( - <section className="response"> - <ToggleEdit/> - <ResponseLine - flow={flow} - readonly={!isEdit} - updateFlow={updateFlow}/> - <Headers - message={flow.response} - readonly={!isEdit} - onChange={headers => updateFlow({ response: { headers } })} - /> - <hr/> - <ContentView - readonly={!isEdit} - flow={flow} - onContentChange={content => updateFlow({ response: {content}})} - uploadContent={content => uploadContent(flow, content, "response")} - message={flow.response} - /> + <section className="response flowview-container"> + <div className="flowview-body"> + <ToggleEdit/> + <ResponseLine + flow={flow} + readonly={!isEdit} + updateFlow={updateFlow}/> + <Headers + message={flow.response} + readonly={!isEdit} + onChange={headers => updateFlow({ response: { headers } })} + /> + <hr/> + <ContentView + readonly={!isEdit} + flow={flow} + onContentChange={content => updateFlow({ response: {content}})} + message={flow.response} + /> + </div> + <div hidden={noContent} className="flowview-footer"> + <ContentViewOptions + flow={flow} + message={flow.response} + uploadContent={content => uploadContent(flow, content, "response")} + readonly={!isEdit}/> + </div> </section> ) } |