Advertisement
Guest User

task

a guest
Nov 16th, 2019
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.74 KB | None | 0 0
  1. const addTaskButton = document.querySelector('#btn-add');
  2. const taskListContainer = document.querySelector('#tasks-container');
  3. const textBoxTitle = document.querySelector('#txt-title');
  4. //console.log(taskListContainer);
  5. //console.log(addTaskButton);
  6.  
  7. //console.log(addTaskButton.parentElement);
  8. //console.log(addTaskButton.parentNode);
  9.  
  10. addTaskButton.addEventListener('click', btnAddClick);
  11. textBoxTitle.addEventListener('keyup', txtKeyUp);
  12.  
  13. function btnAddClick(e) {
  14. //console.log(e);
  15. //console.log(e.target);
  16. e;
  17. addItem();
  18. }
  19.  
  20. function txtKeyUp(e) {
  21. //console.log(e);
  22. if (e.keyCode == 13) {
  23. addItem();
  24. }
  25. }
  26.  
  27. function addItem() {
  28. let txtBox = document.querySelector('#txt-title');
  29. //console.log(txtBox);
  30.  
  31. let text = txtBox.value;
  32. text = text.trim();
  33. if (text == '') {
  34. alert('Task Title can not be empty!');
  35. return;
  36. }
  37.  
  38. //console.log(text);
  39.  
  40. let itemContainer = document.createElement("div");
  41. //console.log(itemContainer);
  42. itemContainer.className = 'task-item';
  43.  
  44. let itemText = document.createElement('p');
  45. itemText.innerHTML = text;
  46. itemText.className = 'task-title';
  47. //console.log(itemText);
  48.  
  49. let checkContainer = document.createElement('div');
  50. checkContainer.className = 'task-check';
  51.  
  52. let removeBtn = document.createElement('button');
  53. removeBtn.className = 'task-remove-btn';
  54. removeBtn.addEventListener('click', removeTask);
  55. removeBtn.innerHTML = 'X';
  56.  
  57. let chkDone = document.createElement('input');
  58. chkDone.type = 'checkbox';
  59. chkDone.className = 'chk-state';
  60. chkDone.value = 'done';
  61. chkDone.addEventListener('change', handleCheckChange);
  62.  
  63. checkContainer.appendChild(removeBtn);
  64. checkContainer.appendChild(chkDone);
  65.  
  66. itemContainer.appendChild(itemText);
  67. itemContainer.appendChild(checkContainer);
  68. taskListContainer.appendChild(itemContainer);
  69.  
  70. txtBox.value = '';
  71. }
  72.  
  73. function removeTask(e) {
  74. //console.log(e);
  75. //console.log(e.target);
  76. if (!confirm('Are you sure?')) {
  77. return;
  78. }
  79. let btnToRemove = e.target;
  80. let divToRemove = btnToRemove.parentElement.parentElement;
  81. //console.log(divToRemove);
  82. divToRemove.remove();
  83. }
  84.  
  85. let selectedChildren = [];
  86.  
  87. function handleCheckChange(e) {
  88. //console.log(e);
  89. let chkBox = e.target;
  90.  
  91. let checkContainer = chkBox.parentElement;
  92. let itemContainer = checkContainer.parentElement;
  93.  
  94. if (chkBox.checked) {
  95. itemContainer.children[0].style.textDecoration = 'line-through';
  96. selectedChildren.push(itemContainer);
  97. } else {
  98. itemContainer.children[0].style.textDecoration = 'none';
  99. selectedChildren.unshift(itemContainer)
  100. // for (let i = 0; i < selectedChildren.length; i++) {
  101. // if (itemContainer === selectedChildren[i]) {
  102. delete selectedChildren[i];
  103. }
  104. }
  105.  
  106.  
  107. /////////////////////////////////////////////////////////////////////////
  108.  
  109. let removeSelectedBtn = document.querySelector('#remove-selected-button');
  110. removeSelectedBtn.addEventListener('click', removeSelected);
  111.  
  112. function removeSelected() {
  113. selectedChildren.forEach(element => {
  114. element.remove();
  115. });
  116. }
  117.  
  118. let invertSelectedBtn = document.querySelector('#invert-selected-button');
  119. invertSelectedBtn.addEventListener('click', invertSelected);
  120.  
  121. function invertSelected() {
  122. var inputs = document.querySelectorAll('.chk-state');
  123. for (var i = 0; i < inputs.length; i++) {
  124. if (inputs[i].checked === false) {
  125. inputs[i].checked = true;
  126. } else {
  127. inputs[i].checked = false;
  128. }
  129. inputs[i].dispatchEvent(new Event('change'));
  130. }
  131. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement