aboutsummaryrefslogtreecommitdiffstats
path: root/web/src/js/ducks
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/src/js/ducks
parentdbbda030200e50768c92f48cf4189d96775b0684 (diff)
downloadmitmproxy-ad84d650ded555213452e4a69c1dbea1bc771b3a.tar.gz
mitmproxy-ad84d650ded555213452e4a69c1dbea1bc771b3a.tar.bz2
mitmproxy-ad84d650ded555213452e4a69c1dbea1bc771b3a.zip
sorting add pr review changes
Diffstat (limited to 'web/src/js/ducks')
-rw-r--r--web/src/js/ducks/flows.js14
-rw-r--r--web/src/js/ducks/utils/view.js14
2 files changed, 19 insertions, 9 deletions
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
+}