Advertisement
Guest User

Untitled

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