diff --git a/src/components/ModWatchtools.jsx b/src/components/ModWatchtools.jsx index 8be97b7..5584d15 100644 --- a/src/components/ModWatchtools.jsx +++ b/src/components/ModWatchtools.jsx @@ -23,7 +23,9 @@ const keepState = { */ function compare(a, b, asc) { if (typeof a === 'string' && typeof b === 'string') { - return a.localeCompare(b); + let ret = a.localeCompare(b); + if (asc) ret *= -1; + return ret; } if (!a || a === 'N/A') a = 0; if (!b || b === 'N/A') b = 0; diff --git a/src/core/utils.js b/src/core/utils.js index 8324bbb..474aaff 100644 --- a/src/core/utils.js +++ b/src/core/utils.js @@ -506,39 +506,43 @@ export function parseInterval(interval) { * } */ export function combineTables(a, b) { + let bTable; if (a.columns.length === b.columns.length) { a.rows = a.rows.concat(b.rows); - return a; - } - let bTable; - let sTable; - if (a.columns.length < b.columns.length) { - bTable = b; - sTable = a; - } else { bTable = a; - sTable = b; - } - if (!sTable.rows.length) { - return bTable; - } - const newRows = []; - for (let i = 0; i < sTable.rows.length; i += 1) { - newRows.push([]); - } - for (let i = 0; i < bTable.columns.length; i += 1) { - const colInd = sTable.columns.indexOf(bTable.columns[i]); - if (~colInd) { - for (let u = 0; u < sTable.rows.length; u += 1) { - newRows[u].push(sTable.rows[u][colInd]); - } + } else { + let sTable; + if (a.columns.length < b.columns.length) { + bTable = b; + sTable = a; } else { - for (let u = 0; u < sTable.rows.length; u += 1) { - newRows[u].push(null); + bTable = a; + sTable = b; + } + if (!sTable.rows.length) { + return bTable; + } + const newRows = []; + for (let i = 0; i < sTable.rows.length; i += 1) { + newRows.push([]); + } + for (let i = 0; i < bTable.columns.length; i += 1) { + const colInd = sTable.columns.indexOf(bTable.columns[i]); + if (~colInd) { + for (let u = 0; u < sTable.rows.length; u += 1) { + newRows[u].push(sTable.rows[u][colInd]); + } + } else { + for (let u = 0; u < sTable.rows.length; u += 1) { + newRows[u].push(null); + } } } + bTable.rows = bTable.rows.concat(newRows); + } + if (bTable.columns[0] === 'rid') { + bTable.rows.forEach((row, i) => { row[0] = i; }); } - bTable.rows = bTable.rows.concat(newRows); return bTable; }