diff options
author | Sam Wenham <sam@wenhams.co.uk> | 2019-03-04 19:39:57 +0000 |
---|---|---|
committer | Sam Wenham <sam@wenhams.co.uk> | 2019-03-04 19:39:57 +0000 |
commit | 384b0438b49de3db6aafae7bc986ffa22ddf4795 (patch) | |
tree | d063f0fddafe26abf2dda6454bc0046e50a48dd1 /media/scripts/TableSort.js | |
parent | e01507d54112cfc61748eeff27a3a264e1ad7516 (diff) | |
download | troggle-384b0438b49de3db6aafae7bc986ffa22ddf4795.tar.gz troggle-384b0438b49de3db6aafae7bc986ffa22ddf4795.tar.bz2 troggle-384b0438b49de3db6aafae7bc986ffa22ddf4795.zip |
Backed out changeset: e80a936faab6
Diffstat (limited to 'media/scripts/TableSort.js')
-rw-r--r-- | media/scripts/TableSort.js | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/media/scripts/TableSort.js b/media/scripts/TableSort.js deleted file mode 100644 index 39f5e92..0000000 --- a/media/scripts/TableSort.js +++ /dev/null @@ -1,158 +0,0 @@ -function filterTable(tablename) -{ - table = document.getElementById(tablename); - - mindepth = document.getElementById("CaveDepthMin").value; - maxdepth = document.getElementById("CaveDepthMax").value; - if(mindepth==0)mindepth=-999999; - if(maxdepth==0)maxdepth= 999999; - - minlength = document.getElementById("CaveLengthMin").value; - maxlength = document.getElementById("CaveLengthMax").value; - if(minlength==0)minlength=-999999; - if(maxlength==0)maxlength= 999999; - - visitdate = document.getElementById("VisitDate").value; - - visitor = document.getElementById("Visitor").value; - - cavename = document.getElementById("CaveName").value.toLowerCase(); - - incomplete = document.getElementById("Incomplete").checked; - - var regexmode = false; - if(visitor[0]=='/' && visitor[visitor.length-1]=='/') - { - regexmode = true; - visitor = new RegExp(visitor.substr(1,visitor.length-2)); - } - else - { - visitor.toLowerCase(); - } - - rows = table.rows; - for(i=1; i< rows.length; i++) - { - name = (rows[i].getElementsByTagName("TD")[0]).innerHTML.toLowerCase(); - - depth = (rows[i].getElementsByTagName("TD")[1]).innerHTML.toLowerCase(); - depth = Number(depth.replace(/[^0-9.]/g,'')); - - length = (rows[i].getElementsByTagName("TD")[2]).innerHTML.toLowerCase(); - length = Number(length.replace(/[^0-9.]/g,'')); - - date = (rows[i].getElementsByTagName("TD")[3]).innerHTML.toLowerCase(); - - recentvisitor = (rows[i].getElementsByTagName("TD")[4]).innerHTML.toLowerCase(); - - if(cavename != "" && !name.includes(cavename)) - { - rows[i].style.visibility = "collapse"; - } - if(depth<mindepth || depth>maxdepth) - { - rows[i].style.visibility = "collapse"; - } - if(length<minlength || length>maxlength) - { - rows[i].style.visibility = "collapse"; - } - if(date < visitdate) - { - rows[i].style.visibility = "collapse"; - } - if(visitor != "" && regexmode && !visitor.test(recentvisitor)) - { - rows[i].style.visibility = "collapse"; - } - if(visitor != "" && !regexmode && !recentvisitor.includes(visitor)) - { - rows[i].style.visibility = "collapse"; - } - - crow=rows[i].getElementsByTagName("TD"); - for(var j=0; j<crow.length; j++) - { - if(crow[j].innerHTML == "" && incomplete) - { - rows[i].style.visibility = "collapse"; - break; - } - } - - } -} - -function filterTableReset(tablename) -{ - table = document.getElementById(tablename); - rows = table.rows; - for(i=1; i< rows.length; i++) - { - rows[i].style.visibility = "visible"; - } -} - - -function isOrdered(kvarray,numeric) -{ - for(var i=0;i<kvarray.length-1;i++) - { - if(numeric==1 && Number(kvarray[i][0])>Number(kvarray[i+1][0])) - { - return false; - } - if(numeric!=1 && kvarray[i][0]>kvarray[i+1][0]) - { - return false; - } - } - return true; -} - -function sortTable(n, tablename, numeric) { - table = document.getElementById(tablename); - rows = table.rows; - var ordering = []; - var i; - - //construct key-value pairs for sorting - for(i = 1; i < rows.length; i++) //remember header rows - { - key = rows[i].getElementsByTagName("TD")[n]; - key = key.innerHTML.toLowerCase(); - if(numeric==1) - { - key=key.replace(/[^0-9.]/g,'') - } - ordering.push([key,i]); - } - - var ascending = isOrdered(ordering,numeric); - - //sort either numerically or alphabetically - if(numeric==1) - { - ordering.sort((x,y) => Number(x[0])-Number(y[0])); - } - else - { - ordering.sort(); //sorts alphabetically - } - - if(ascending) ordering.reverse(); - - for(i = 0; i < ordering.length; i++) //add sorted list at the end of the table - { - var keyval = ordering[i]; - id = keyval[1]; //get rownumber of n^th sorted value - cln = rows[id].cloneNode(true); //deep clone of current node - table.insertBefore(cln,null); //add n^th row at the end - } - for(i = 1; i < ordering.length+1; i++) //remove unsorted nodes - { - table.deleteRow(1);// 0 -> header; 1 -> first row - } - -} |