diff --git a/client/app/scripts/components/node-details/node-details-table.js b/client/app/scripts/components/node-details/node-details-table.js index bc403712a..fa3b81eda 100644 --- a/client/app/scripts/components/node-details/node-details-table.js +++ b/client/app/scripts/components/node-details/node-details-table.js @@ -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; + }); + const withValues = sortNodes(withAndWithoutValues.true, columns, sortBy, sortedDesc); + const withoutValues = sortNodes(withAndWithoutValues.false, columns, sortBy, sortedDesc); + + return _.concat(withValues, withoutValues); +} + + function getColumnsWidths(headers) { return headers.map((h, i) => { //