aboutsummaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorClemens <cle1000.cb@gmail.com>2016-06-08 10:29:33 +0200
committerClemens <cle1000.cb@gmail.com>2016-06-08 10:29:33 +0200
commitad84d650ded555213452e4a69c1dbea1bc771b3a (patch)
tree97fa925d370ebebe1df9b68ceaa050e656b107fa /web
parentdbbda030200e50768c92f48cf4189d96775b0684 (diff)
downloadmitmproxy-ad84d650ded555213452e4a69c1dbea1bc771b3a.tar.gz
mitmproxy-ad84d650ded555213452e4a69c1dbea1bc771b3a.tar.bz2
mitmproxy-ad84d650ded555213452e4a69c1dbea1bc771b3a.zip
sorting add pr review changes
Diffstat (limited to 'web')
-rw-r--r--web/src/js/components/flowtable-columns.js14
-rw-r--r--web/src/js/components/mainview.js1
-rw-r--r--web/src/js/ducks/flows.js14
-rw-r--r--web/src/js/ducks/utils/view.js14
4 files changed, 26 insertions, 17 deletions
diff --git a/web/src/js/components/flowtable-columns.js b/web/src/js/components/flowtable-columns.js
index 1eae6409..799b3f9f 100644
--- a/web/src/js/components/flowtable-columns.js
+++ b/web/src/js/components/flowtable-columns.js
@@ -3,7 +3,7 @@ import {RequestUtils, ResponseUtils} from "../flow/utils.js"
import {formatSize, formatTimeDelta} from "../utils.js"
-function TLSColumn({flow}) {
+export function TLSColumn({flow}) {
let ssl = (flow.request.scheme === "https")
let classes
if (ssl) {
@@ -17,7 +17,7 @@ TLSColumn.Title = ({className = "", ...props}) => <th {...props} className={"col
TLSColumn.sortKeyFun = flow => flow.request.scheme
-function IconColumn({flow}) {
+export function IconColumn({flow}) {
let icon
if (flow.response) {
var contentType = ResponseUtils.getContentType(flow.response)
@@ -49,7 +49,7 @@ function IconColumn({flow}) {
IconColumn.Title = ({className = "", ...props}) => <th {...props} className={"col-icon " + className }></th>
-function PathColumn({flow}) {
+export function PathColumn({flow}) {
return <td className="col-path">
{flow.request.is_replay ? <i className="fa fa-fw fa-repeat pull-right"></i> : null}
{flow.intercepted ? <i className="fa fa-fw fa-pause pull-right"></i> : null}
@@ -61,7 +61,7 @@ PathColumn.Title = ({className = "", ...props}) =>
PathColumn.sortKeyFun = flow => RequestUtils.pretty_url(flow.request)
-function MethodColumn({flow}) {
+export function MethodColumn({flow}) {
return <td className="col-method">{flow.request.method}</td>
}
MethodColumn.Title = ({className = "", ...props}) =>
@@ -69,7 +69,7 @@ MethodColumn.Title = ({className = "", ...props}) =>
MethodColumn.sortKeyFun = flow => flow.request.method
-function StatusColumn({flow}) {
+export function StatusColumn({flow}) {
let status
if (flow.response) {
status = flow.response.status_code
@@ -84,7 +84,7 @@ StatusColumn.Title = ({className = "", ...props}) =>
StatusColumn.sortKeyFun = flow => flow.response ? flow.response.status_code : undefined
-function SizeColumn({flow}) {
+export function SizeColumn({flow}) {
let total = flow.request.contentLength
if (flow.response) {
total += flow.response.contentLength || 0
@@ -104,7 +104,7 @@ SizeColumn.sortKeyFun = flow => {
}
-function TimeColumn({flow}) {
+export function TimeColumn({flow}) {
let time
if (flow.response) {
time = formatTimeDelta(1000 * (flow.response.timestamp_end - flow.request.timestamp_start))
diff --git a/web/src/js/components/mainview.js b/web/src/js/components/mainview.js
index dae2856e..5915c9fc 100644
--- a/web/src/js/components/mainview.js
+++ b/web/src/js/components/mainview.js
@@ -169,7 +169,6 @@ const MainViewContainer = connect(
state => ({
flows: state.flows.view,
filter: state.flows.filter,
- sort: state.flows.sort,
highlight: state.flows.highlight,
selectedFlow: state.flows.all.byId[state.flows.selected[0]]
}),
diff --git a/web/src/js/ducks/flows.js b/web/src/js/ducks/flows.js
index 83a7b12c..6adde71c 100644
--- a/web/src/js/ducks/flows.js
+++ b/web/src/js/ducks/flows.js
@@ -1,8 +1,8 @@
import makeList from "./utils/list"
import Filt from "../filt/filt"
-import {updateViewFilterSort, updateViewList} from "./utils/view"
+import {updateViewFilter, updateViewList, updateViewSort} from "./utils/view"
import {reverseString} from "../utils.js";
-import flowtable_columns from "../components/flowtable-columns.js";
+import * as flow_table_columns from "../components/flowtable-columns.js";
export const UPDATE_FLOWS = "UPDATE_FLOWS"
export const SET_FILTER = "SET_FLOW_FILTER"
@@ -32,13 +32,13 @@ function makeFilterFn(filter) {
function makeSortFn(sort){
- let column = _.find(flowtable_columns, c => c.name == sort.sortColumn);
+ let column = flow_table_columns[sort.sortColumn];
if (!column) return;
let sortKeyFun = column.sortKeyFun;
if (sort.sortDesc) {
- sortKeyFun = sortKeyFun && function () {
- const k = column.sortKeyFun.apply(this, arguments);
+ sortKeyFun = sortKeyFun && function (flow) {
+ const k = column.sortKeyFun(flow);
return _.isString(k) ? reverseString("" + k) : -k;
};
}
@@ -58,7 +58,7 @@ export default function reducer(state = defaultState, action) {
return {
...state,
filter: action.filter,
- view: updateViewFilterSort(state.all, makeFilterFn(action.filter), makeSortFn(state.sort))
+ view: updateViewFilter(state.all, makeFilterFn(action.filter), makeSortFn(state.sort))
}
case SET_HIGHLIGHT:
return {
@@ -69,7 +69,7 @@ export default function reducer(state = defaultState, action) {
return {
...state,
sort: action.sort,
- view: updateViewFilterSort(state.all, makeFilterFn(state.filter), makeSortFn(action.sort))
+ view: updateViewSort(state.view, makeSortFn(action.sort))
}
case SELECT_FLOW:
return {
diff --git a/web/src/js/ducks/utils/view.js b/web/src/js/ducks/utils/view.js
index 712c4d99..2d23a39c 100644
--- a/web/src/js/ducks/utils/view.js
+++ b/web/src/js/ducks/utils/view.js
@@ -75,7 +75,7 @@ export function updateViewList(currentView, currentList, nextList, action, filte
case REQUEST_LIST:
return currentView
case RECEIVE_LIST:
- return updateViewFilterSort(nextList, filterFn, sortFn)
+ return updateViewFilter(nextList, filterFn, sortFn)
case ADD:
if (filterFn(action.item)) {
return sortedInsert(currentView, sortFn, action.item)
@@ -113,7 +113,7 @@ export function updateViewList(currentView, currentList, nextList, action, filte
}
}
-export function updateViewFilterSort(list, filterFn = defaultFilterFn, sortFn = defaultSortFn) {
+export function updateViewFilter(list, filterFn = defaultFilterFn, sortFn = defaultSortFn) {
let filtered = list.list.filter(filterFn)
if (sortFn){
filtered.sort(makeCompareFn(sortFn))
@@ -122,3 +122,13 @@ export function updateViewFilterSort(list, filterFn = defaultFilterFn, sortFn =
return filtered
}
+
+export function updateViewSort(list, sortFn = defaultSortFn) {
+ let sorted = list.slice(0)
+ if (sortFn) {
+ sorted.sort(makeCompareFn(sortFn))
+ }
+ sorted.indexOf = x => sortedIndexOf(sorted, x, sortFn)
+
+ return sorted
+}