Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.05 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width">
  6. <title>ToDo List App</title>
  7. <style id="jsbin-css">
  8. tr {
  9. cursor: pointer;
  10. }
  11.  
  12. tr:hover {
  13. background: #ddd;
  14. }
  15.  
  16. tr.urgent {
  17. color: #FF0000;
  18. }
  19.  
  20. tr.critical {
  21. color: #FFA500;
  22. }
  23.  
  24. tr.normal {
  25. color: #008000;
  26. }
  27.  
  28. tr.ifyoucan {
  29. color: #3987c9;
  30. }
  31.  
  32. tr.checked {
  33. color: #808080;
  34. text-decoration: line-through;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <input type="text" id="task" style="width: 400px;" autocomplete="off" placeholder="Add new task description..." minlength="6" maxlength="42" required>
  40. <select id="priority" autocomplete="off">
  41. <option value="Urgent">Urgent</option>
  42. <option value="Critical">Critical</option>
  43. <option value="Normal" selected="selected">Normal</option>
  44. <option value="If You Can">If You Can</option>
  45. </select>
  46. <input type="button" id="addRow" value="Add" onclick="addRow();" />
  47. <br>
  48. <hr>
  49. <br>
  50. <table id="table1" width="50%">
  51. <tbody>
  52. <tr class=critical onclick="markAsChecked(this);">
  53. <td>Attend Selection Day</td>
  54. <td>Critical</td>
  55. </tr>
  56. <tr class=normal onclick="markAsChecked(this);">
  57. <td>Register to Full Stack Web Course</td>
  58. <td>Normal</td>
  59. </tr>
  60. <tr class=ifyoucan onclick="markAsChecked(this);">
  61. <td>Go see X-Men apocalypse movie</td>
  62. <td>If You Can</td>
  63. </tr>
  64. </tbody>
  65. </table>
  66. <script id="jsbin-javascript">
  67. function addRow() {
  68. var task = document.getElementById("task").value;
  69. var priority = document.getElementById("priority").value;
  70. var className = document.getElementById("priority").value;
  71.  
  72. if (task === '') {
  73. alert("You must write something!");
  74. } else if (task.length < 6) {
  75. alert("Minimum length is 6 characters!");
  76. } else {
  77. var table = document.getElementById("table1");
  78. var row = table.insertRow(0);
  79. var cell1 = row.insertCell(0);
  80. var cell2 = row.insertCell(1);
  81. cell1.innerHTML = task;
  82. cell2.innerHTML = priority;
  83. row.className = className.replace(/\s+/g, '').toLowerCase();
  84. row.setAttribute("onclick", "markAsChecked(this);");
  85. sortPriority();
  86. }
  87. }
  88.  
  89. function sortPriority() {
  90. var table, rows, switching, i, x, y, x1, y1;
  91. table = document.getElementById("table1");
  92. switching = true;
  93. while (switching) {
  94. switching = false;
  95. rows = table.getElementsByTagName("TR");
  96. for (i = 0; i < (rows.length - 1); i++) {
  97. x = rows[i].getElementsByTagName("TD")[1];
  98. y = rows[i + 1].getElementsByTagName("TD")[1];
  99. if (x.innerHTML === "Urgent") {
  100. x1 = 1;
  101. } else if (x.innerHTML === "Critical") {
  102. x1 = 2;
  103. } else if (x.innerHTML === "Normal") {
  104. x1 = 3;
  105. } else {
  106. x1 = 4;
  107. }
  108. if (y.innerHTML === "Urgent") {
  109. y1 = 1;
  110. } else if (y.innerHTML === "Critical") {
  111. y1 = 2;
  112. } else if (y.innerHTML === "Normal") {
  113. y1 = 3;
  114. } else {
  115. y1 = 4;
  116. }
  117. if (x1 > y1) {
  118. rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
  119. switching = true;
  120. break;
  121. }
  122. }
  123. }
  124. sortTasks();
  125. }
  126.  
  127. function sortTasks() {
  128. var table, rows, switching, i, x, y, x1, y1;
  129. table = document.getElementById("table1");
  130. switching = true;
  131. while (switching) {
  132. switching = false;
  133. rows = table.getElementsByTagName("TR");
  134. for (i = 0; i < (rows.length - 1); i++) {
  135. x = rows[i].getElementsByTagName("TD")[0];
  136. y = rows[i + 1].getElementsByTagName("TD")[0];
  137. x1 = rows[i].getElementsByTagName("TD")[1];
  138. y1 = rows[i + 1].getElementsByTagName("TD")[1];
  139. if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase() &&
  140. x1.innerHTML === y1.innerHTML) {
  141. rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
  142. switching = true;
  143. break;
  144. }
  145. }
  146. }
  147. }
  148.  
  149. function markAsChecked(row){
  150. row.setAttribute("class", "checked");
  151. }
  152.  
  153. document.getElementById("task")
  154. .addEventListener("keyup", function(event) {
  155. event.preventDefault();
  156. if (event.keyCode == 13) {
  157. document.getElementById("addRow").click();
  158. }
  159. });
  160. </script>
  161.  
  162.  
  163. <script id="jsbin-source-css" type="text/css">tr {
  164. cursor: pointer;
  165. }
  166.  
  167. tr:hover {
  168. background: #ddd;
  169. }
  170.  
  171. tr.urgent {
  172. color: #FF0000;
  173. }
  174.  
  175. tr.critical {
  176. color: #FFA500;
  177. }
  178.  
  179. tr.normal {
  180. color: #008000;
  181. }
  182.  
  183. tr.ifyoucan {
  184. color: #3987c9;
  185. }
  186.  
  187. tr.checked {
  188. color: #808080;
  189. text-decoration: line-through;
  190. }</script>
  191.  
  192. <script id="jsbin-source-javascript" type="text/javascript">function addRow() {
  193. var task = document.getElementById("task").value;
  194. var priority = document.getElementById("priority").value;
  195. var className = document.getElementById("priority").value;
  196.  
  197. if (task === '') {
  198. alert("You must write something!");
  199. } else if (task.length < 6) {
  200. alert("Minimum length is 6 characters!");
  201. } else {
  202. var table = document.getElementById("table1");
  203. var row = table.insertRow(0);
  204. var cell1 = row.insertCell(0);
  205. var cell2 = row.insertCell(1);
  206. cell1.innerHTML = task;
  207. cell2.innerHTML = priority;
  208. row.className = className.replace(/\s+/g, '').toLowerCase();
  209. row.setAttribute("onclick", "markAsChecked(this);");
  210. sortPriority();
  211. }
  212. }
  213.  
  214. function sortPriority() {
  215. var table, rows, switching, i, x, y, x1, y1;
  216. table = document.getElementById("table1");
  217. switching = true;
  218. while (switching) {
  219. switching = false;
  220. rows = table.getElementsByTagName("TR");
  221. for (i = 0; i < (rows.length - 1); i++) {
  222. x = rows[i].getElementsByTagName("TD")[1];
  223. y = rows[i + 1].getElementsByTagName("TD")[1];
  224. if (x.innerHTML === "Urgent") {
  225. x1 = 1;
  226. } else if (x.innerHTML === "Critical") {
  227. x1 = 2;
  228. } else if (x.innerHTML === "Normal") {
  229. x1 = 3;
  230. } else {
  231. x1 = 4;
  232. }
  233. if (y.innerHTML === "Urgent") {
  234. y1 = 1;
  235. } else if (y.innerHTML === "Critical") {
  236. y1 = 2;
  237. } else if (y.innerHTML === "Normal") {
  238. y1 = 3;
  239. } else {
  240. y1 = 4;
  241. }
  242. if (x1 > y1) {
  243. rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
  244. switching = true;
  245. break;
  246. }
  247. }
  248. }
  249. sortTasks();
  250. }
  251.  
  252. function sortTasks() {
  253. var table, rows, switching, i, x, y, x1, y1;
  254. table = document.getElementById("table1");
  255. switching = true;
  256. while (switching) {
  257. switching = false;
  258. rows = table.getElementsByTagName("TR");
  259. for (i = 0; i < (rows.length - 1); i++) {
  260. x = rows[i].getElementsByTagName("TD")[0];
  261. y = rows[i + 1].getElementsByTagName("TD")[0];
  262. x1 = rows[i].getElementsByTagName("TD")[1];
  263. y1 = rows[i + 1].getElementsByTagName("TD")[1];
  264. if (x.innerHTML.toLowerCase() > y.innerHTML.toLowerCase() &&
  265. x1.innerHTML === y1.innerHTML) {
  266. rows[i].parentNode.insertBefore(rows[i + 1], rows[i]);
  267. switching = true;
  268. break;
  269. }
  270. }
  271. }
  272. }
  273.  
  274. function markAsChecked(row){
  275. row.setAttribute("class", "checked");
  276. }
  277.  
  278. document.getElementById("task")
  279. .addEventListener("keyup", function(event) {
  280. event.preventDefault();
  281. if (event.keyCode == 13) {
  282. document.getElementById("addRow").click();
  283. }
  284. });</script></body>
  285. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement