From 40c242c3f6e9de093f68ad3e1f8887ae49a28b84 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Tue, 17 Mar 2015 03:05:59 +0100 Subject: add table sort --- web/src/js/components/flowtable-columns.js | 83 +++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 23 deletions(-) (limited to 'web/src/js/components/flowtable-columns.js') diff --git a/web/src/js/components/flowtable-columns.js b/web/src/js/components/flowtable-columns.js index 39c4bd8d..a82c607a 100644 --- a/web/src/js/components/flowtable-columns.js +++ b/web/src/js/components/flowtable-columns.js @@ -1,11 +1,17 @@ var React = require("react"); -var flowutils = require("../flow/utils.js"); +var RequestUtils = require("../flow/utils.js").RequestUtils; +var ResponseUtils = require("../flow/utils.js").ResponseUtils; var utils = require("../utils.js"); var TLSColumn = React.createClass({ statics: { - renderTitle: function () { - return ; + Title: React.createClass({ + render: function(){ + return ; + } + }), + sortKeyFun: function(flow){ + return flow.request.scheme; } }, render: function () { @@ -24,16 +30,18 @@ var TLSColumn = React.createClass({ var IconColumn = React.createClass({ statics: { - renderTitle: function () { - return ; - } + Title: React.createClass({ + render: function(){ + return ; + } + }) }, render: function () { var flow = this.props.flow; var icon; if (flow.response) { - var contentType = flowutils.ResponseUtils.getContentType(flow.response); + var contentType = ResponseUtils.getContentType(flow.response); //TODO: We should assign a type to the flow somewhere else. if (flow.response.code == 304) { @@ -64,8 +72,13 @@ var IconColumn = React.createClass({ var PathColumn = React.createClass({ statics: { - renderTitle: function () { - return Path; + Title: React.createClass({ + render: function(){ + return Path; + } + }), + sortKeyFun: function(flow){ + return RequestUtils.pretty_url(flow.request); } }, render: function () { @@ -73,7 +86,7 @@ var PathColumn = React.createClass({ return {flow.request.is_replay ? : null} {flow.intercepted ? : null} - {flow.request.scheme + "://" + flow.request.host + flow.request.path} + { RequestUtils.pretty_url(flow.request) } ; } }); @@ -81,8 +94,13 @@ var PathColumn = React.createClass({ var MethodColumn = React.createClass({ statics: { - renderTitle: function () { - return Method; + Title: React.createClass({ + render: function(){ + return Method; + } + }), + sortKeyFun: function(flow){ + return flow.request.method; } }, render: function () { @@ -94,8 +112,13 @@ var MethodColumn = React.createClass({ var StatusColumn = React.createClass({ statics: { - renderTitle: function () { - return Status; + Title: React.createClass({ + render: function(){ + return Status; + } + }), + sortKeyFun: function(flow){ + return flow.response ? flow.response.code : undefined; } }, render: function () { @@ -113,8 +136,17 @@ var StatusColumn = React.createClass({ var SizeColumn = React.createClass({ statics: { - renderTitle: function () { - return Size; + Title: React.createClass({ + render: function(){ + return Size; + } + }), + sortKeyFun: function(flow){ + var total = flow.request.contentLength; + if (flow.response) { + total += flow.response.contentLength || 0; + } + return total; } }, render: function () { @@ -132,8 +164,15 @@ var SizeColumn = React.createClass({ var TimeColumn = React.createClass({ statics: { - renderTitle: function () { - return Time; + Title: React.createClass({ + render: function(){ + return Time; + } + }), + sortKeyFun: function(flow){ + if(flow.response) { + return flow.response.timestamp_end - flow.request.timestamp_start; + } } }, render: function () { @@ -156,9 +195,7 @@ var all_columns = [ MethodColumn, StatusColumn, SizeColumn, - TimeColumn]; - - -module.exports = all_columns; - + TimeColumn +]; +module.exports = all_columns; \ No newline at end of file -- cgit v1.2.3