Merge pull request #1747 from weaveworks/sort-nodes-nicely-1744

table-mode: handle nodes w/ no value for sorted column gracefully
This commit is contained in:
Simon
2016-08-03 17:47:48 +02:00
committed by GitHub

View File

@@ -87,7 +87,7 @@ function getMetaDataSorters(nodes) {
}
function getSortedNodes(nodes, columns, sortBy, sortedDesc) {
function sortNodes(nodes, columns, sortBy, sortedDesc) {
const sortedNodes = _.sortBy(
nodes,
getValueForSortBy(sortBy || getDefaultSortBy(columns, nodes)),
@@ -101,6 +101,19 @@ function getSortedNodes(nodes, columns, sortBy, sortedDesc) {
}
function getSortedNodes(nodes, columns, sortBy, sortedDesc) {
const getValue = getValueForSortBy(sortBy || getDefaultSortBy(columns, nodes));
const withAndWithoutValues = _.groupBy(nodes, (n) => {
const v = getValue(n);
return v !== null && v !== undefined ? 'withValues' : 'withoutValues';
});
const withValues = sortNodes(withAndWithoutValues.withValues, columns, sortBy, sortedDesc);
const withoutValues = sortNodes(withAndWithoutValues.withoutValues, columns, sortBy, sortedDesc);
return _.concat(withValues, withoutValues);
}
function getColumnsWidths(headers) {
return headers.map((h, i) => {
//