var TLSColumn = React.createClass({ statics: { renderTitle: function () { return ; } }, render: function () { var flow = this.props.flow; var ssl = (flow.request.scheme == "https"); var classes; if (ssl) { classes = "col-tls col-tls-https"; } else { classes = "col-tls col-tls-http"; } return ; } }); var IconColumn = React.createClass({ statics: { renderTitle: function () { return ; } }, render: function () { var flow = this.props.flow; var icon; if (flow.response) { var contentType = ResponseUtils.getContentType(flow.response); //TODO: We should assign a type to the flow somewhere else. if (flow.response.code == 304) { icon = "resource-icon-not-modified"; } else if (300 <= flow.response.code && flow.response.code < 400) { icon = "resource-icon-redirect"; } else if (contentType && contentType.indexOf("image") >= 0) { icon = "resource-icon-image"; } else if (contentType && contentType.indexOf("javascript") >= 0) { icon = "resource-icon-js"; } else if (contentType && contentType.indexOf("css") >= 0) { icon = "resource-icon-css"; } else if (contentType && contentType.indexOf("html") >= 0) { icon = "resource-icon-document"; } } if (!icon) { icon = "resource-icon-plain"; } icon += " resource-icon"; return
; } }); var PathColumn = React.createClass({ statics: { renderTitle: function () { return Path; } }, render: function () { var flow = this.props.flow; return {flow.request.scheme + "://" + flow.request.host + flow.request.path}; } }); var MethodColumn = React.createClass({ statics: { renderTitle: function () { return Method; } }, render: function () { var flow = this.props.flow; return {flow.request.method}; } }); var StatusColumn = React.createClass({ statics: { renderTitle: function () { return Status; } }, render: function () { var flow = this.props.flow; var status; if (flow.response) { status = flow.response.code; } else { status = null; } return {status}; } }); var SizeColumn = React.createClass({ statics: { renderTitle: function () { return Size; } }, render: function () { var flow = this.props.flow; var total = flow.request.contentLength; if (flow.response) { total += flow.response.contentLength || 0; } var size = formatSize(total); return {size}; } }); var TimeColumn = React.createClass({ statics: { renderTitle: function () { return Time; } }, render: function () { var flow = this.props.flow; var time; if (flow.response) { time = formatTimeDelta(1000 * (flow.response.timestamp_end - flow.request.timestamp_start)); } else { time = "..."; } return {time}; } }); var all_columns = [ TLSColumn, IconColumn, PathColumn, MethodColumn, StatusColumn, SizeColumn, TimeColumn];