viligen

taskManager

Jun 7th, 2022
1,261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let [_, open, inProgress, complete] = document.querySelectorAll("section");
  3.  
  4.     let taskName = document.querySelector("#task");
  5.     let description = document.querySelector("#description");
  6.     let date = document.querySelector("#date");
  7.  
  8.     document.querySelector("#add").addEventListener("click", onClick);
  9.  
  10.     function onClick(ev) {
  11.         ev.preventDefault();
  12.         if (
  13.             [taskName.value, description.value, date.value].some(
  14.                 (el) => el == false
  15.             )
  16.         ) {
  17.             return;
  18.         }
  19.         let parentDiv = open.children[1];
  20.         let article = document.createElement("article");
  21.         parentDiv.appendChild(article);
  22.         let newH3 = createElement("h3", taskName.value, "", article);
  23.         let newPdescript = createElement(
  24.             "p",
  25.             "Description: " + description.value,
  26.             "",
  27.             article
  28.         );
  29.         let newRdate = createElement(
  30.             "p",
  31.             "Due Date: " + date.value,
  32.             "",
  33.             article
  34.         );
  35.         let newDivBtns = createElement("div", "", "flex", article);
  36.         let newBtnStart = createElement("button", "Start", "green", newDivBtns);
  37.         let newBtnDelete = createElement("button", "Delete", "red", newDivBtns);
  38.  
  39.         taskName.value = "";
  40.         description.value = "";
  41.         date.value = "";
  42.  
  43.         newBtnDelete.addEventListener("click", deleteArticle);
  44.         function deleteArticle(ev) {
  45.             article.remove();
  46.         }
  47.  
  48.         newBtnStart.addEventListener("click", inProgr);
  49.         function inProgr(ev) {
  50.             let pDivInProgr = inProgress.children[1];
  51.             pDivInProgr.appendChild(article);
  52.             newBtnStart.remove();
  53.             let newBtnFinish = createElement(
  54.                 "button",
  55.                 "Finish",
  56.                 "orange",
  57.                 newDivBtns
  58.             );
  59.             newBtnFinish.addEventListener("click", finished);
  60.  
  61.             function finished(ev) {
  62.                 let pDivFinished = complete.children[1];
  63.                 pDivFinished.appendChild(article);
  64.                 ev.target.parentElement.remove();
  65.             }
  66.         }
  67.     }
  68.  
  69.     function createElement(type, text, className, parent) {
  70.         let newEl = document.createElement(type);
  71.         newEl.textContent = text;
  72.         if (className) {
  73.             newEl.classList.add(className);
  74.         }
  75.         parent.appendChild(newEl);
  76.         return newEl;
  77.     }
  78. }
  79.  
Advertisement
Add Comment
Please, Sign In to add comment