Advertisement
Guest User

Untitled

a guest
Mar 4th, 2015
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.27 KB | None | 0 0
  1. //Perparing table
  2. /*
  3. *comment
  4. */
  5. $("<div>", {class: "tablewrapper"}).insertBefore("table#table-body");
  6. $("<table>", {class: "header"}).appendTo($("<div>", {class: "headerwrapper"}).appendTo("div.tablewrapper"));
  7. $("table#table-body").appendTo($("<div>", {class: "bodywrapper"}).appendTo("div.tablewrapper"));
  8. $("table#table-body>thead").clone().val("").appendTo("table.header");
  9. $("table.header>tr").removeClass("header_hidden");
  10. $("table#table-body").find("thead tr").addClass("header_hidden");
  11. $("table#table-body").find("tbody td:nth-child(2)").addClass("lefty");
  12. $("<input>", {type: "text"}).attr("id","search-criteria").appendTo($("<div>", {class:"s_box"}).insertAfter("div.headerwrapper"));
  13. $("<div>").attr("id","count").insertAfter("div.s_box");
  14.  
  15.  
  16. resizeTable();
  17. var bodyTd = $("table#table-body tr td");
  18.  
  19. $(window).resize(resizeTable);
  20.  
  21. //search function
  22. $("#search-criteria").on("keyup", function () {
  23. var keyword = $(this).val().replace(/[A-Za-z0-9]/g, function (td_word) {
  24. return String.fromCharCode(td_word.charCodeAt(0) - 0xFEE0);
  25. }).toLowerCase();
  26. var row = "table#table-body tbody>tr";
  27.  
  28. if (keyword !== "") {
  29. $(row).each(function () {
  30. var td_word = $(this).text().toLowerCase();
  31. //shorthand if function
  32. $(this).closest(row)[td_word.indexOf(keyword) !== -1 ? 'show' : 'hide']();
  33. });
  34. var srowCount = $(row).filter(":visible").length;
  35. document.getElementById('count').innerHTML = srowCount;
  36. if (srowCount === 0) {
  37. if(!$(row).last().hasClass('s_empty'))
  38. {
  39. $("table#table-body tbody").last().append('<tr class="s_empty"><td colspan="5" style="text-align:center">Search not found</td></tr>');
  40. }
  41. $("tr.s_empty").show();
  42. } else {
  43. $("tr.s_empty").remove();
  44. }
  45. } else {
  46. $("tr.s_empty").remove();
  47. $(row).show();
  48. document.getElementById('count').innerHTML = $(row).length;
  49. }
  50.  
  51. });
  52.  
  53. var row = "table#table-body tbody>tr";
  54. var srowCount = $(row).filter(":visible").length;
  55. document.getElementById('count').innerHTML = srowCount;
  56.  
  57. function resizeTable() {
  58. //width adjustments
  59. $("table.header").width($("#table-body").width());
  60. $("div.s_box").width(($("div.headerwrapper").width()-10)).height(($("table.header").height()-9));
  61. $("input#search-criteria").width(($("div.headerwrapper").width()-30)).height(($("div.s_box").height()-0.05));
  62. var counter_h = ($("table.header").height()/2+$("table.header").height()-1);
  63. $("div#count").css({"top":counter_h});
  64.  
  65. var bodyTr = $("table#table-body tbody>tr:visible:eq(0) td");
  66. console.log(bodyTr);
  67. $("table.header tr:first th").each(function (index, value) {
  68. $(this).width(bodyTr.eq(index).width());
  69. });
  70.  
  71. //apply widths to every TD
  72. $("table#table-body tr:gt(0)").each(function () {
  73. $(this).children().each(function (index) {
  74. $(this).width(bodyTr.eq(index).width());
  75. });
  76. });
  77. }
  78.  
  79. div.tablewrapper, div.headerwrapper, div.bodywrapper {
  80. border:0px;
  81. }
  82.  
  83. div.headerwrapper {
  84. background-color:#1BA7F5;
  85. }
  86.  
  87. div.bodywrapper {
  88. height:100px;
  89. overflow-y:scroll;
  90. border-bottom:solid 2px #1BA7F5;
  91. }
  92.  
  93. table.header, table#table-body {
  94. border:0px;
  95. border-collapse:collapse;
  96. border-spacing:0px;
  97. text-align:center;
  98. }
  99.  
  100. table.header {
  101. line-height:32px;
  102. background-color:#1BA7F5;
  103. color:#FFF;
  104. }
  105.  
  106. table.header th {
  107. padding-left:10px;
  108. text-align:left;
  109. font-weight: normal;
  110. }
  111.  
  112. table#table-body {
  113. width:100%;
  114. }
  115.  
  116. table#table-body tr {
  117. line-height:30px;
  118. border-top:1px solid #C4C4C4;
  119. }
  120.  
  121. table#table-body tr.header_hidden {
  122. display:none;
  123. }
  124.  
  125. table#table-body tr:hover {
  126. background-color:#FFFF99;
  127. }
  128.  
  129. div.s_box {
  130. padding: 5px 5px;
  131. background: #c4c4c4;
  132. box-sizing: border-box;
  133. }
  134.  
  135. input#search-criteria {
  136. -webkit-appearance: none;
  137. padding: 0 10px;
  138. border: none;
  139. border-radius: 6px;
  140. font-size: 13px;
  141. line-height: 23px;
  142. background: #fff;
  143. }
  144.  
  145. input#search-criteria:focus{
  146. outline:none;
  147. }
  148.  
  149. div#count {
  150. position: absolute;
  151. right: 17px;
  152. color: #FFF;
  153. background-color: #9EB4C2;
  154. line-height: 19px;
  155. font-size: 15px;
  156. padding: 0 5px;
  157. border-radius: 3px;
  158. }
  159.  
  160. table#table-body tbody td.lefty {
  161. text-align:left;
  162. }
  163.  
  164. $(this).closest(row)[td_word.indexOf(keyword) !== -1 ? 'show' : 'hide']();
  165.  
  166. $(this).closest(row).toggle(td_word.indexOf(keyword) !== -1);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement