From 11e1e7462aa20ccc6f1d5c0282156294ace9acf6 Mon Sep 17 00:00:00 2001 From: klaas Date: Fri, 6 Dec 2024 14:55:09 +0100 Subject: [PATCH] Anzahl der Teilnahmen in Teilnhemerliste sortierbar --- views/teilnehmer.ejs | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/views/teilnehmer.ejs b/views/teilnehmer.ejs index 17e57e4..c42d9be 100644 --- a/views/teilnehmer.ejs +++ b/views/teilnehmer.ejs @@ -34,7 +34,7 @@ <% if (teilnehmer.probe) { %> <% } %> - (<%= teilnehmer.anwesenheit %>) + <%= teilnehmer.anwesenheit %> @@ -49,17 +49,21 @@ function sortTable(spaltenIndex) { let isAscending = table.getAttribute('data-sort') === 'asc'; rows.sort((rowA, rowB) => { - let cellA = rowA.cells[spaltenIndex].innerText.toLowerCase(); - let cellB = rowB.cells[spaltenIndex].innerText.toLowerCase(); - - if (!isNaN(cellA) && !isNaN(cellB)) { - // Wenn die Zellen Zahlen sind, sortiere nach Zahlengröße - cellA = parseFloat(cellA); - cellB = parseFloat(cellB); + let cellA = rowA.cells[spaltenIndex].innerText.trim(); + let cellB = rowB.cells[spaltenIndex].innerText.trim(); + + // Überprüfen, ob die Zellen numerisch sind + let numA = parseFloat(cellA); + let numB = parseFloat(cellB); + + // Wenn beide Zahlen sind, sortiere numerisch + if (!isNaN(numA) && !isNaN(numB)) { + return isAscending ? numA - numB : numB - numA; } - if (cellA < cellB) return isAscending ? 1 : -1; - if (cellA > cellB) return isAscending ? -1 : 1; + // Andernfalls sortiere alphabetisch + if (cellA < cellB) return isAscending ? -1 : 1; + if (cellA > cellB) return isAscending ? 1 : -1; return 0; });