Ivankooo1

softuni Administration - kolega

Jan 7th, 2021
749
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let newLectureInputElements = document.querySelectorAll('div[class="form-control"] input');
  3.     let lectureNameInput = newLectureInputElements[0];
  4.     let dateInput = newLectureInputElements[1];
  5.     let selectInput = document.querySelector('div[class="form-control"] select');
  6.     let addLectureBtn = document.querySelector('div[class="form-control"] button');
  7.     // console.log(lectureNameInput.value);
  8.     // console.log(dateInput.value);
  9.     // console.log(selectInput.value);
  10.     // console.log(addLectureBtn);
  11.  
  12.     let modulesDivElement = document.querySelector('div[class="modules"]');
  13.     // console.log(modulesDivElement);
  14.  
  15.     addLectureBtn.addEventListener("click", function (e) {
  16.         if (lectureNameInput.value && dateInput.value && selectInput.value !== "Select module") {
  17.             e.preventDefault();
  18.  
  19.             let allModules = Array.from(modulesDivElement.children);
  20.  
  21.             let customDate = new Date(dateInput.value);
  22.             let resultDate = `${customDate.getFullYear()}/${customDate.getMonth() + 1}/${customDate.getDate()} - ${customDate.getHours()}:${customDate.getMinutes() < 10 ? '0' + customDate.getMinutes() : customDate.getMinutes()}`;
  23.             let currentModule = allModules.find(x => x.firstChild.textContent.includes(selectInput.value.toUpperCase()));
  24.             let ulElement = document.createElement("ul");
  25.             let liElement = document.createElement("li");
  26.             liElement.classList.add("flex");
  27.             let h4Element = document.createElement("h4");
  28.             h4Element.textContent = `${lectureNameInput.value} - ${resultDate}`;
  29.             let delBtn = document.createElement("button");
  30.             delBtn.classList.add("red");
  31.             delBtn.textContent = "Del";
  32.  
  33.             if (currentModule) {
  34.  
  35.  
  36.                 liElement.appendChild(h4Element);
  37.                 liElement.appendChild(delBtn);
  38.                 // ulElement.appendChild(liElement);
  39.                 currentModule.children[1].appendChild(liElement);
  40.  
  41.  
  42.                 let allLiElements = Array.from(currentModule.children[1].children);
  43.                 allLiElements.sort((a, b) => {
  44.                     let indexDash = a.firstChild.textContent.indexOf("-");
  45.                     let aname = a.firstChild.textContent.substring(0, indexDash - 1);
  46.                     let adate = a.firstChild.textContent.substring(indexDash + 2);
  47.  
  48.                     let bname = b.firstChild.textContent.substring(0, indexDash - 1);
  49.                     let bdate = b.firstChild.textContent.substring(indexDash + 2);
  50.                     if (aname === bname) {
  51.                         let res = adate.localeCompare(bdate)
  52.                         console.log(res);
  53.                         return res;
  54.                     }
  55.                 });
  56.  
  57.  
  58.                 // currentModule.children[1].children = allLiElements;
  59.                 currentModule.children[1].innerHTML = "";
  60.                 allLiElements.forEach(x => {
  61.                     currentModule.children[1].appendChild(x);
  62.                 })
  63.                 modulesDivElement.appendChild(currentModule);
  64.             } else {
  65.                 let moduleDiv = document.createElement("div");
  66.                 moduleDiv.classList.add("module");
  67.                 let h3Element = document.createElement("h3");
  68.                 h3Element.textContent = selectInput.value.toUpperCase() + "-MODULE";
  69.  
  70.                 liElement.appendChild(h4Element);
  71.                 liElement.appendChild(delBtn);
  72.                 ulElement.appendChild(liElement);
  73.  
  74.  
  75.                 moduleDiv.appendChild(h3Element);
  76.                 moduleDiv.appendChild(ulElement);
  77.  
  78.                 modulesDivElement.appendChild(moduleDiv);
  79.             }
  80.  
  81.             delBtn.addEventListener("click", function (e) {
  82.                 let currentUlElement = e.target.parentElement.parentElement;
  83.                 let curentLiElement = e.target.parentElement;
  84.  
  85.                 if (Array.from(currentUlElement.children).length > 1) {
  86.                     currentUlElement.removeChild(curentLiElement);
  87.                 } else {
  88.                     currentUlElement.parentElement.parentElement.removeChild(currentUlElement.parentElement);
  89.                 }
  90.             })
  91.  
  92.             lectureNameInput.value = ""
  93.             dateInput.value = ""
  94.             selectInput.value = "Select module"
  95.         }
  96.     });
  97. };
Advertisement
Add Comment
Please, Sign In to add comment