From 931cb4d7191639dd76628f527cc3b2ae97fe0c90 Mon Sep 17 00:00:00 2001 From: mdPlusPlus Date: Fri, 30 Dec 2022 02:06:31 +0100 Subject: [PATCH] Add table sorting by clicking on headers --- get_online_session_communities.php | 14 ++++---- output/script.js | 55 ++++++++++++++++++++++++++++++ output/styles.css | 2 ++ 3 files changed, 65 insertions(+), 6 deletions(-) diff --git a/get_online_session_communities.php b/get_online_session_communities.php index 0cc1e31..1add0f1 100644 --- a/get_online_session_communities.php +++ b/get_online_session_communities.php @@ -595,18 +595,20 @@ "

Session Communities

" . PHP_EOL . "" . PHP_EOL . " " . PHP_EOL . - " " . PHP_EOL . - " " . PHP_EOL . - " " . PHP_EOL . - " " . PHP_EOL . - " " . PHP_EOL . - " " . PHP_EOL . + " " . PHP_EOL . + " " . PHP_EOL . + " " . PHP_EOL . + " " . PHP_EOL . + " " . PHP_EOL . + " " . PHP_EOL . " " . PHP_EOL; // suffix // span over 6 columns (id, name, description, users, preview, join link) $span_count = 6; $suffix = + "
IdentifierNameDescriptionUsersPreviewJoin URLIdentifierNameDescriptionUsersPreviewJoin URL
" . PHP_EOL . + "" . PHP_EOL . " " . PHP_EOL . " " . PHP_EOL . " " . PHP_EOL . diff --git a/output/script.js b/output/script.js index 76a076f..61d8a67 100644 --- a/output/script.js +++ b/output/script.js @@ -1,3 +1,58 @@ function copyToClipboard(text) { navigator.clipboard.writeText(text); } + +function sortTable(n) { + var table, rows, switching, i, x, y, shouldSwitch, dir, switchcount = 0; + table = document.getElementById("tbl_communities"); + switching = true; + // Set the sorting direction to ascending: + dir = "asc"; + /* Make a loop that will continue until + no switching has been done: */ + while (switching) { + // Start by saying: no switching is done: + switching = false; + rows = table.rows; + /* Loop through all table rows (except the + first, which contains table headers): */ + for (i = 1; i < (rows.length - 1); i++) { + // Start by saying there should be no switching: + shouldSwitch = false; + /* Get the two elements you want to compare, + one from current row and one from the next: */ + x = rows[i].getElementsByTagName("TD")[n]; + y = rows[i + 1].getElementsByTagName("TD")[n]; + /* Check if the two rows should switch place, + based on the direction, asc or desc: */ + if (dir == "asc") { + if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase()) { + // If so, mark as a switch and break the loop: + shouldSwitch = true; + break; + } + } else if (dir == "desc") { + if (x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase()) { + // If so, mark as a switch and break the loop: + shouldSwitch = true; + break; + } + } + } + if (shouldSwitch) { + /* If a switch has been marked, make the switch + and mark that a switch has been done: */ + rows[i].parentNode.insertBefore(rows[i + 1], rows[i]); + switching = true; + // Each time a switch is done, increase this count by 1: + switchcount ++; + } else { + /* If no switching has been done AND the direction is "asc", + set the direction to "desc" and run the while loop again. */ + if (switchcount == 0 && dir == "asc") { + dir = "desc"; + switching = true; + } + } + } +} diff --git a/output/styles.css b/output/styles.css index 71b7c5e..61afef6 100644 --- a/output/styles.css +++ b/output/styles.css @@ -14,5 +14,7 @@ .copy_button { } +#tbl_footer { width:100%; } + #td_summary { text-align: center; } #td_last_checked { text-align: center; }
" . count($table_lines) . " unique Session Communities have been found.