Ivankooo1

Administration day

Jan 2nd, 2021
647
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.  
  3.   const findTagFromParent = (parent, tag, text) => {
  4.     const parents = document.getElementsByClassName(parent);
  5.  
  6.     for (parent of parents) {
  7.       const descendants = parent.getElementsByTagName(tag);
  8.       if (descendants.length) {
  9.         const button = descendants[0];
  10.         if (button.innerHTML === text) {
  11.           return button;
  12.         }
  13.       }
  14.     }
  15.  
  16.     return undefined;
  17.   };
  18.  
  19.  
  20.  
  21.  
  22.   const el = (tag, content, attributes) => {
  23.     const element = document.createElement(tag);
  24.     if (attributes) {
  25.       //Ако са подадени атрибути (ID, className, etc.) ги закачаме към елемента
  26.       Object.assign(element, attributes);
  27.     }
  28.     if (Array.isArray(content)) {
  29.       //Ако създаваме например Div, в който трябва да има други елементи - p, span, etc., ги закачаме като масив
  30.       content.forEach(appendEl);
  31.     } else {
  32.       //Ако не е масив, просто закачаме текста или числото, което сме подали
  33.       appendEl(content);
  34.     }
  35.  
  36.     function appendEl(node) {
  37.       if (typeof node == "string" || typeof node == "number") {
  38.         node = document.createTextNode(node);
  39.       }
  40.       element.appendChild(node);
  41.     }
  42.  
  43.     return element;
  44.   };
  45.  
  46.   const validateAndAdd = (e) => {
  47.     const lectureName = document.getElementsByName("lecture-name")[0].value;
  48.     const lectureDate = document.getElementsByName("lecture-date")[0].value;
  49.     const lectureModule = document.getElementsByName("lecture-module")[0].value;
  50.  
  51.     if (
  52.       lectureName === "" ||
  53.       lectureDate === "" ||
  54.       lectureModule === "Select module"
  55.     )
  56.       return;
  57.  
  58.     const title = `${lectureModule.toUpperCase()}-MODULE`;
  59.  
  60.     const chosenDate = new Date(lectureDate);
  61.  
  62.     gayFormatDate =
  63.       chosenDate.getFullYear() +
  64.       "/" +
  65.       ("0" + chosenDate.getDate()).slice(-2) +
  66.       "/" +
  67.       ("0" + (chosenDate.getMonth() + 1)).slice(-2) +
  68.       " - " +
  69.       chosenDate.getHours() +
  70.       ":" +
  71.       ("0" + chosenDate.getMinutes()).slice(-2);
  72.     const date = gayFormatDate;
  73.  
  74.     const module = findTagFromParent("module", "h3", title);
  75.  
  76.     const h4 = el("h4", `${lectureName} - ${date}`);
  77.     const button = el("button", "Del", { className: "red" });
  78.     const li = el("li", [h4, button], { className: "flex" });
  79.  
  80.     let ul;
  81.  
  82.     if (!module) {
  83.       const modules = document.getElementsByClassName("modules")[0];
  84.       const h3 = el("h3", title);
  85.       ul = el("ul", li);
  86.  
  87.       const newModule = el("div", [h3, ul], { className: "module" });
  88.       modules.appendChild(newModule);
  89.     } else {
  90.       ul = module.parentNode.getElementsByTagName("ul")[0];
  91.  
  92.       ul.appendChild(li);
  93.     }
  94.  
  95.     e.preventDefault();
  96.   };
  97.  
  98.  
  99.   const addButton = findTagFromParent("form-control", "button", "Add");
  100.  
  101.   if (!addButton) {
  102.     return;
  103.   }
  104.   addButton.addEventListener("click", validateAndAdd);
  105.  
  106.  
  107.  
  108. }
  109.  
Advertisement
Add Comment
Please, Sign In to add comment