Advertisement
kalinx

df

Oct 15th, 2021
563
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.53 KB | None | 0 0
  1. function solve(e) {
  2.     const [lectNameField, dateField] = document.querySelectorAll(`input`);
  3.     const moduleNameField = document.getElementsByTagName('select')[0];
  4.     const modules = document.getElementsByClassName('modules')[0];
  5.     document.querySelector('button').addEventListener('click', addLecture);
  6.  
  7.     function lectureTemplate(date, lectureName) {
  8.         const li = document.createElement('li');
  9.         li.className = 'flex';
  10.         li.innerHTML = `<h4>${lectureName} - ${date}</h4>
  11.         <button class='red'>Del</button>`;
  12.         li.querySelector('button').addEventListener('click', dellLecture);
  13.         li.date = date;
  14.  
  15.         return li;
  16.     }
  17.  
  18.     function moduleTemplate(moduleName, date, lectureName) {
  19.         const moduleDiv = document.createElement('div');
  20.         moduleDiv.className = 'module';
  21.         moduleDiv.innerHTML = `<h3>${moduleName}</h3>`;
  22.         const moduleLectures = document.createElement('ul');
  23.         moduleLectures.appendChild(lectureTemplate(date, lectureName));
  24.         moduleDiv.appendChild(moduleLectures);
  25.  
  26.         return moduleDiv;
  27.     }
  28.  
  29.     const helpers = {fDate: (s) => s.replaceAll('-', '/').replace('T', ' - '),
  30.                     fName: (n) => `${n.toLocaleUpperCase()}-MODULE`}
  31.  
  32.     function addLecture(e) {
  33.         e.preventDefault();
  34.         const [lectureName, date, moduleName] = [lectNameField.value, helpers.fDate(dateField.value), helpers.fName(moduleNameField.value)];
  35.  
  36.         if (lectureName !== '' && date !== '' && moduleName !== 'Select module') {
  37.             const sameModule = Array.from(modules.children)
  38.                 .find(x => x.children[0].innerHTML === moduleName);
  39.             if (sameModule) {
  40.                 const trainings = sameModule.children[1];
  41.                 const lectures = Array.from(trainings.children);
  42.                 lectures.push(lectureTemplate(date, lectureName));
  43.                 lectures.sort((a, b) => a.date.localeCompare(b.date));
  44.                 lectures.forEach(lecture => trainings.appendChild(lecture));
  45.             } else {
  46.                 modules.appendChild(moduleTemplate(moduleName, date, lectureName));
  47.             }
  48.         lectNameField.value = '';
  49.         dateField.value = '';
  50.         moduleNameField.value = 'Select module';
  51.         }
  52.     }
  53.  
  54.     function dellLecture(e) {
  55.         const moduleSection = e.target.parentElement.parentElement.parentElement;
  56.         e.target.parentElement.remove();
  57.         if (moduleSection.children[1].children.length === 0) {
  58.             moduleSection.remove()
  59.         }
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement