dddilian

SoftUni Administration

Oct 24th, 2020
443
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.  
  3.     //get the Add button
  4.     let addButton = document.getElementsByClassName("form-control")[3].children[0];
  5.     addButton.addEventListener("click", addFunc);
  6.  
  7.     let inputElements = Array.from(document.querySelectorAll("form input"));
  8.     let selectEl = document.getElementsByTagName("select")[0];
  9.     //console.log(selectEl.value)
  10.  
  11.     let [lectureNameInput, dateInput] = inputElements;
  12.  
  13.  
  14.     let divClassModules = document.getElementsByClassName("modules")[0];
  15.     //console.log(divClassModules)
  16.  
  17.     function addFunc(e) {
  18.         e.preventDefault();
  19.  
  20.         // console.log(lectureNameInput.value);
  21.         // console.log(dateInput.value);
  22.         // console.log(selectEl.value)
  23.  
  24.         let dateArr = dateInput.value.split("T")
  25.         let date = dateArr[0].split("-").join("/")
  26.         let time = dateArr[1];
  27.  
  28.         // console.log(date);
  29.         // console.log(time);
  30.  
  31.         if (selectEl.value == "Select module" || !lectureNameInput.value || !dateInput.value) {
  32.             console.log("ne")
  33.             return;
  34.         }
  35.  
  36.         let newDivEl = document.createElement("div");
  37.         newDivEl.className = "module";
  38.         let newH3El = document.createElement("h3");
  39.         newH3El.textContent = selectEl.value.toUpperCase() + "-MODULE";
  40.         let neUlEl = document.createElement("ul");
  41.         let newLiEl = document.createElement("li");
  42.         newLiEl.className = "flex";
  43.  
  44.         let newH4El = document.createElement("h4");
  45.         newH4El.textContent = `${lectureNameInput.value} - ${date} - ${time}`;
  46.  
  47.  
  48.  
  49.         let buttonDel = document.createElement('button');
  50.         buttonDel.textContent = "Del";
  51.         buttonDel.className = "red";
  52.         buttonDel.addEventListener("click", deleteLi);
  53.  
  54.  
  55.         newLiEl.appendChild(newH4El);
  56.         newLiEl.appendChild(buttonDel)
  57.         neUlEl.appendChild(newLiEl);
  58.  
  59.  
  60.         let modulesArr = Array.from(document.querySelectorAll(".modules")[0].children);
  61.  
  62.         let moduleToFind = modulesArr.find(moduleToFind => moduleToFind.children[0].textContent == (selectEl.value.toUpperCase() + "-MODULE"));
  63.  
  64.         if (moduleToFind) {
  65.             moduleToFind.children[1].appendChild(newLiEl);
  66.  
  67.             // let ulElArr = Array.from(moduleToFind.children[1].children);
  68.             // ulElArr.sort((a, b) => a.children[0].localeCompare(b.children[0]));
  69.  
  70.         } else {
  71.             newDivEl.appendChild(newH3El);
  72.             newDivEl.appendChild(neUlEl);
  73.             divClassModules.appendChild(newDivEl);
  74.         }
  75.  
  76.     }
  77.  
  78.  
  79.  
  80.     function deleteLi(e) {
  81.  
  82.         let mainParentElement = e.currentTarget.parentElement.parentElement.parentElement; //class modules
  83.  
  84.         // console.log(Array.from(e.currentTarget.parentElement.parentElement.children).length); //ul
  85.  
  86.         if (Array.from(e.currentTarget.parentElement.parentElement.children).length < 2) { //ако има по-малко от 1 li в този модул - трием целия модул
  87.  
  88.             mainParentElement.remove();
  89.  
  90.         } else {
  91.             e.currentTarget.parentElement.remove(); //трием само li-то
  92.         }
  93.  
  94.     }
  95.  
  96.  
  97. };
RAW Paste Data