diff options
| author | Aleksandr Nogikh <nogikh@google.com> | 2023-04-11 11:45:19 +0200 |
|---|---|---|
| committer | Aleksandr Nogikh <wp32pw@gmail.com> | 2023-04-11 17:23:03 +0200 |
| commit | cc8f267259ef3387a8ef00b6178578d67a77aaa5 (patch) | |
| tree | a0cb030ab7a11a3f955af2ea42a9bc8f4da868cf /pkg/html | |
| parent | 71147e2975d4444919920d1fd05dd20219dbc315 (diff) | |
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.
Diffstat (limited to 'pkg/html')
| -rw-r--r-- | pkg/html/pages/common.js | 9 |
1 files changed, 7 insertions, 2 deletions
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 |
