From cc8f267259ef3387a8ef00b6178578d67a77aaa5 Mon Sep 17 00:00:00 2001 From: Aleksandr Nogikh Date: Tue, 11 Apr 2023 11:45:19 +0200 Subject: pkg/html/pages: sort table also by non-displayed values Now we're limited to sorting table columns exactly by the displayed content, but this is not always convenient. If the `sort-value` attribute is present, prefer it to the element's text content. --- pkg/html/pages/common.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'pkg/html') diff --git a/pkg/html/pages/common.js b/pkg/html/pages/common.js index 80db71c8f..78cd92277 100644 --- a/pkg/html/pages/common.js +++ b/pkg/html/pages/common.js @@ -6,8 +6,13 @@ function sortTable(item, colName, conv, desc = false) { rows = table.rows; col = findColumnByName(rows[0].getElementsByTagName("th"), colName); values = []; - for (i = 1; i < rows.length; i++) - values.push([conv(rows[i].getElementsByTagName("td")[col].textContent), rows[i]]); + for (i = 1; i < rows.length; i++) { + const td = rows[i].getElementsByTagName("td")[col] + let value = td.textContent + if (td.getAttribute("sort-value") != null) + value = td.getAttribute("sort-value") + values.push([conv(value), rows[i]]); + } if (desc) desc = !isSorted(values.slice().reverse()) else -- cgit mrf-deployment