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