Advertisement
Guest User

Untitled

a guest
Aug 11th, 2015
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.81 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <script src="http://code.jquery.com/jquery-2.1.4.js"></script>
  7. <script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
  8. <!-- http://tinysort.sjeiti.com/ to sort dom nodes. -->
  9. <script src="https://cdnjs.cloudflare.com/ajax/libs/tinysort/2.2.2/tinysort.js"></script>
  10. <link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  11. <style>
  12. body {
  13. font-family: "Trebuchet MS", "Helvetica", "Arial", "Verdana", "sans-serif";
  14. font-size: 62.5%;
  15. }
  16.  
  17. #buddylistdiv {
  18. width: 300px;
  19. background: #c0c0c0
  20. }
  21.  
  22. #buddylist {
  23. list-style-type: none;
  24. margin: 0;
  25. padding: 0;
  26. width: 100%;
  27. }
  28.  
  29. #buddylist li div.buddytitle {
  30. margin: 3px;
  31. padding: 0.4em;
  32. font-size: 1.4em;
  33. height: 18px;
  34. background: #c0c0c0
  35. }
  36.  
  37. #buddylist li div.buddydetails {
  38. font-size: 1.4em;
  39. background: #CCC;
  40. margin: 1px;
  41. padding: 0.1em;
  42. width: 97%;
  43. display: none;
  44. }
  45.  
  46. #searchkey {
  47. margin: 1px;
  48. padding: 0.1em;
  49. width: 97%;
  50. }
  51.  
  52. .online {
  53. float:left;
  54. color: green;
  55. }
  56.  
  57. .offline {
  58. float:left;
  59. color: #AF0000;
  60. }
  61. </style>
  62.  
  63. <script>
  64.  
  65. function deleteBuddy(delBtn) {
  66. $("#dialog-confirm").html("Are you sure ?");
  67. $("#dialog-confirm").dialog({
  68. resizable: false,
  69. modal: true,
  70. title: "Modal",
  71. height: 250,
  72. width: 400,
  73. buttons: {
  74. "Sure": function () {
  75. var buddyLi = delBtn.parentNode.parentNode.parentNode;
  76. $(buddyLi).remove();
  77. $(this).dialog('close');
  78. },
  79. "No!": function () {
  80. $(this).dialog('close');
  81. }
  82. }
  83. });
  84. }
  85.  
  86. function sortByName() {
  87. var buddyLiNodeList = $("#buddylist > li").get();
  88. tinysort(buddyLiNodeList, { selector: "[name=fullname]" });
  89. }
  90.  
  91. function showDetails(e) {
  92. $(e.nextElementSibling).toggle();
  93. }
  94.  
  95. $(function() {
  96. var dialog, form;
  97. var username = $('#username');
  98. var firstname = $('#firstname');
  99. var lastname = $('#lastname');
  100. var email = $('#email');
  101. var dob = $('#dob');
  102. var notes = $('#notes');
  103. var allFields = $([]).add(username).add(firstname).add(lastname);
  104.  
  105. function createTitlesDiv() {
  106. var buddyTitleDiv = document.createElement("div");
  107. $(buddyTitleDiv).addClass("buddytitle");
  108. var statusSpan = document.createElement("span");
  109. $(statusSpan).attr("name", "status");
  110. $(statusSpan).text("[*]");
  111. $(statusSpan).addClass("online");
  112. $(buddyTitleDiv).append(statusSpan);
  113. var fullnameSpan = document.createElement("span");
  114. $(fullnameSpan).attr("name", "fullname");
  115. $(fullnameSpan).text(firstname.val() + " " + lastname.val());
  116. $(buddyTitleDiv).append(fullnameSpan);
  117. $(buddyTitleDiv).click(function () {
  118. showDetails(buddyTitleDiv);
  119. });
  120. var delBtn = document.createElement("button");
  121. $(delBtn).text("x");
  122. var delSpan = document.createElement("span");
  123. $(delSpan).css("float", "right");
  124. $(delSpan).append(delBtn);
  125. $(buddyTitleDiv).append(delSpan);
  126. $(delBtn).click(function () {
  127. deleteBuddy(delBtn);
  128. });
  129. return buddyTitleDiv;
  130.  
  131. }
  132.  
  133. function createTr(nodeName, nodeLabel, nodeValue){
  134. var tr = document.createElement('tr');
  135. var td1 = document.createElement('td');
  136. $(td1).attr("name",nodeName);
  137. $(td1).text(nodeLabel);
  138. var td2 = document.createElement("td");
  139. $(td2).text(nodeValue);
  140. tr.appendChild(td1);
  141. tr.appendChild(td2);
  142. return tr;
  143.  
  144. }
  145.  
  146. function createDetailDiv(){
  147. var buddyDetailDiv = document.createElement("div");
  148. var tbl = document.createElement("table");
  149. var nametr = document.createElement("tr");
  150. var nametd = document.createElement("td");
  151. buddyDetailDiv.appendChild(tbl);
  152. $(tbl).append(createTr("username","username", $(username).val()));
  153. $(tbl).append(createTr("firstname","Firstname", $(firstname).val()));
  154. $(tbl).append(createTr("lastname","Lastname", $(lastname).val()));
  155. $(tbl).append(createTr("email","Email Id", $(email).val()));
  156. $(tbl).append(createTr("dob","Date Of Birth", $(dob).val()));
  157. $(tbl).append(createTr("notes","Bio", $(notes).val()));
  158. $(buddyDetailDiv).addClass("buddydetails");
  159. return buddyDetailDiv;
  160. }
  161.  
  162. function addBuddy() {
  163. var buddyLi = document.createElement("li");
  164. var buddyTitleDiv = createTitlesDiv();
  165. var buddyDetailDiv = createDetailDiv();
  166. buddyLi.appendChild(buddyTitleDiv);
  167. buddyLi.appendChild(buddyDetailDiv);
  168. $("#buddylist").append(buddyLi);
  169. $( dialog ).dialog( "close" );
  170. }
  171. dialog = $( "#add-buddy-form" ).dialog({
  172. autoOpen: false,
  173. height: 300,
  174. width: 350,
  175. modal: true,
  176. buttons: {
  177. "Add buddy": addBuddy,
  178. Cancel: function() {
  179. dialog.dialog( "close" );
  180. }
  181. },
  182. close: function() {
  183. form[ 0 ].reset();
  184. allFields.removeClass( "ui-state-error" );
  185. }
  186. });
  187.  
  188. form = dialog.find( "form" ).on( "submit", function( event ) {
  189. event.preventDefault();
  190. addBuddy();
  191. });
  192.  
  193. $( "#add-buddy-button" ).button().on( "click", function() {
  194. dialog.dialog( "open" );
  195. });
  196.  
  197. $(function () {
  198. $("#buddylist").sortable();
  199. $("#buddylist").disableSelection();
  200. });
  201.  
  202. $("#searchkey").keyup(function () {
  203. var searchKey = $("#searchkey").val().toLowerCase();
  204. $("#buddylist > li").each(function() {
  205. var actualName = $(this).find("[name=fullname]").text().toLowerCase();
  206. if (actualName.indexOf(searchKey) == -1) {
  207. $(this).hide();
  208. } else {
  209. $(this).show();
  210. }
  211. });
  212. });
  213. });
  214.  
  215. </script>
  216. </head>
  217.  
  218. <body>
  219. <div id="add-buddy-form" title="Add new buddy!">
  220. <form>
  221. <fieldset>
  222. <table>
  223. <tr>
  224. <td><label for="username">Username</label></td>
  225. <td><input type="text" name="username" id="username" placeholder="username" class="text ui-widget-content ui-corner-all"></td>
  226. </tr>
  227. <tr>
  228. <td><label for="firstname">Firstname</label></td>
  229. <td><input type="text" name="firstname" id="firstname" placeholder="Firstname"
  230. class="text ui-widget-content ui-corner-all"></td>
  231. </tr>
  232. <tr>
  233. <td><label for="lastname">Lastname</label></td>
  234. <td><input type="text" name="lastname" id="lastname" placeholder="Lastname"
  235. class="text ui-widget-content ui-corner-all"></td>
  236. </tr>
  237. <tr>
  238. <td><label for="email">Email</label></td>
  239. <td><input type="email" name="email" id="email" placeholder="email@example.com"
  240. class="text ui-widget-content ui-corner-all"></td>
  241. </tr>
  242. <tr>
  243. <td><label for="dob">Date Of Birth</label></td>
  244. <td><input type="text" name="dob" id="dob" placeholder="MM/DD/YYYY"
  245. class="text ui-widget-content ui-corner-all"></td>
  246. </tr>
  247. <tr>
  248. <td><label for="notes">Notes</label></td>
  249. <td><input type="text" name="notes" id="notes" placeholder="About buddy"
  250. class="text ui-widget-content ui-corner-all"></td>
  251. </tr>
  252. <!-- Allow form submission with keyboard without duplicating the dialog button -->
  253. <input type="submit" tabindex="-1" style="position:absolute; top:-1000px">
  254.  
  255. </table>
  256. </fieldset>
  257. </form>
  258. </div>
  259. <div id="dialog-confirm"></div>
  260. <div id="buddylistdiv">
  261. <button id="add-buddy-button">Add Buddy</button>
  262. <button id="sort-by-name-button" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" role="button" onclick="sortByName()">
  263. <span class="ui-button-text">Sort</span>
  264. </button>
  265. <br /><br />
  266. <input type="text" id="searchkey" placeholder="Search name here..."></input>
  267. <br /><br />
  268. <ul id="buddylist">
  269. <li>
  270. <div class="buddytitle" onclick="showDetails(this);">
  271. <span class="online" name="status">[*]</span>
  272. <span name="fullname">Manali Krish</span>
  273. <span style="float:right">
  274. <button onclick="deleteBuddy(this)">x</button>
  275. </span>
  276. </div>
  277. <div class="buddydetails">
  278. <table>
  279. <tr>
  280. <td name="username">username</td>
  281. <td>Manali10</td>
  282. </tr>
  283. <tr>
  284. <td name="firstname">Firstname</td>
  285. <td>Manali</td>
  286. </tr>
  287. <td name="lastname">Lastname</td>
  288. <td>krish</td>
  289. </tr>
  290. <tr>
  291. <td name="email">Email Id</td>
  292. <td>manali@gmail.com</td>
  293. </tr>
  294. <tr>
  295. <td name="dob">Date Of Birth</td>
  296. <td>10/03/1988</td>
  297. </tr>
  298. <tr>
  299. <td name="notes">Bio</td>
  300. <td>Hi</td>
  301. </tr>
  302. </table>
  303. </div>
  304. </li>
  305. <li>
  306. <div class="buddytitle" onclick="showDetails(this);">
  307. <span class="offline" name="status">[*]</span>
  308. <span name="fullname">Arti Shirbhate</span>
  309. <span style="float:right">
  310. <button onclick="deleteBuddy(this)">x</button>
  311. </span>
  312. </div>
  313. <div class="buddydetails">
  314. <table>
  315. <tr>
  316. <td name="username">username</td>
  317. <td>huhubhu</td>
  318. </tr>
  319. <tr>
  320. <td name="firstname">Firstname</td>
  321. <td>Arti</td>
  322. </tr>
  323. <tr>
  324. <td name="lastname">Lastname</td>
  325. <td>Shirbhate</td>
  326. </tr>
  327. <tr>
  328. <td name="email">Email Id</td>
  329. <td>arti@gmail.com</td>
  330. </tr>
  331. <tr>
  332. <td name="dob">Date Of Birth</td>
  333. <td>10/02/1989</td>
  334. </tr>
  335. <tr>
  336. <td name="notes">Bio</td>
  337. <td>I am me</td>
  338. </tr>
  339. </table>
  340. </div>
  341. </li>
  342. </ul>
  343. </div>
  344. </body>
  345. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement