another modwatchtoold adjustment

This commit is contained in:
HF 2022-09-19 03:20:51 +02:00
parent a6083ca45d
commit a5f8874dc8
2 changed files with 33 additions and 27 deletions

View File

@ -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;

View File

@ -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;
}