Advertisement
Guest User

Untitled

a guest
May 21st, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.53 KB | None | 0 0
  1.  
  2. function sortTable( n ) {
  3. var table, rows, i, x, y, a, b, dir, switching, shouldSwitch, switchcount = 0;
  4. table = document.getElementById( 'table-container' );
  5. switching = true;
  6. //if ( document.getElementsByClassName( 'fa-sort-up' ) ) {
  7. // dir = "asc";
  8. //}
  9. //else if ( document.getElementsByClassName( 'fa-sort-down' ) ) {
  10. // dir = "desc";
  11. //}
  12. if ( document.getElementsByClassName( 'fa-sort' ) ) {
  13. dir = "asc";
  14. }
  15. while ( switching ) {
  16. switching = false;
  17. rows = table.getElementsByTagName( "tr" );
  18. for ( i = 1; i < ( rows.length - 1 ); i++ ) {
  19. shouldSwitch = false;
  20. x = rows[i].getElementsByTagName( "td" )[n];
  21. y = rows[i + 1].getElementsByTagName( "td" )[n];
  22. if ( n == 5 ) {
  23. a = rows[i].getElementsByTagName( "th" )[0];
  24. b = rows[i + 1].getElementsByTagName( "th" )[0];
  25. }
  26. if ( n == 2 ) {
  27. var number1 = x.innerHTML;
  28. var dateAndTime1 = number1.split( " " );
  29. var DMY1 = dateAndTime1[0].split( "." );
  30. var HM1 = dateAndTime1[1].split( ":" );
  31. var number2 = y.innerHTML;
  32. var dateAndTime2 = number2.split( " " );
  33. var DMY2 = dateAndTime2[0].split( "." );
  34. var HM2 = dateAndTime2[1].split( ":" );
  35.  
  36. var date1 = new Date( DMY1[2], DMY1[1] - 1, DMY1[0], HM1[0], HM1[1], 0, 0 ).toISOString();
  37. var date2 = new Date( DMY2[2], DMY2[1] - 1, DMY2[0], HM2[0], HM2[1], 0, 0 ).toISOString();
  38. }
  39.  
  40. if ( dir == "asc" ) {
  41. if ( n == 5 ) {
  42. if ( a.innerHTML.toLowerCase() > b.innerHTML.toLowerCase() ) {
  43. shouldSwitch = true;
  44. break;
  45. }
  46. } else if ( n == 2 ) {
  47. if ( date1 > date2 ) {
  48. shouldSwitch = true;
  49. break;
  50. }
  51. } else {
  52. if ( x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase() ) {
  53. shouldSwitch = true;
  54. break;
  55. }
  56. }
  57. } else if ( dir == "desc" ) {
  58. if ( n == 5 ) {
  59. if ( a.innerHTML.toLowerCase() < b.innerHTML.toLowerCase() ) {
  60. shouldSwitch = true;
  61. break;
  62. }
  63. } else if ( n == 2 ) {
  64. if ( date1 < date2 ) {
  65. shouldSwitch = true;
  66. break;
  67. }
  68. } else {
  69. if ( x.innerHTML.toLowerCase() < y.innerHTML.toLowerCase() ) {
  70. shouldSwitch = true;
  71. break;
  72. }
  73.  
  74. }
  75. }
  76. }
  77. if ( shouldSwitch ) {
  78. rows[i].parentNode.insertBefore( rows[i + 1], rows[i] );
  79. switching = true;
  80. switchcount++;
  81. }
  82. else {
  83. if ( switchcount == 0 && dir == "asc" ) {
  84. dir = "desc";
  85. switching = true;
  86. } else if ( switchcount == 0 && dir == "desc" ) {
  87. dir = "asc";
  88. switching = true;
  89. }
  90. }
  91. }
  92. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement