Marin171

Task Manager

Jun 14th, 2023
15
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. function solve() {
  2. const task = document.getElementById('task');
  3. const description = document.getElementById('description');
  4. const date = document.getElementById('date');
  5.  
  6. const [_,colOpen, colInProgress, colComplete] =
  7. Array.from(document.querySelectorAll('section'))
  8. .map(s=>s.children[1]);
  9.  
  10. document.getElementById('add').addEventListener('click', addTask);
  11.  
  12. function createElement(type, value, className) {
  13. const element = document.createElement(type);
  14. element.textContent = value;
  15. if (className){
  16. element.classList.add(className);
  17. }
  18. return element
  19. }
  20.  
  21. function addTask(ev) {
  22. ev.preventDefault();
  23. const article = document.createElement('article');
  24. article.appendChild(createElement('h3', task.value));
  25. article.appendChild(createElement('p', `Description: ${description.value}`));
  26. article.appendChild(createElement('p', `Due Date: ${date.value}`));
  27.  
  28. const btnWrapper = document.createElement('div');
  29. btnWrapper.classList.add('flex');
  30.  
  31. const btnStart = createElement('button', 'Start', 'green');
  32. const btnDelete = createElement('button', 'Delete', 'red');
  33. const btnFinish = createElement('button', 'Finish', 'orange');
  34.  
  35. btnStart.addEventListener('click', startHandler);
  36. btnDelete.addEventListener('click', deleteHandler);
  37. btnFinish.addEventListener('click', finishHandler);
  38.  
  39. btnWrapper.appendChild(btnStart);
  40. btnWrapper.appendChild(btnDelete);
  41.  
  42. article.appendChild(btnWrapper);
  43. colOpen.appendChild(article);
  44.  
  45. function startHandler() {
  46. btnStart.remove();
  47. btnWrapper.appendChild(btnFinish);
  48. colInProgress.appendChild(article);
  49. }
  50.  
  51. function deleteHandler() {
  52. article.remove();
  53. }
  54.  
  55. function finishHandler() {
  56. btnWrapper.remove();
  57. colComplete.appendChild(article);
  58. }
  59. }
  60. }
Add Comment
Please, Sign In to add comment