Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve() {
- let divElementCollection = document.querySelectorAll('.admin-view .action form div');
- let addButtonElement = divElementCollection[3].children[0];
- addButtonElement.addEventListener('click', addButtonHandler);
- let datesObj = {};
- function addButtonHandler(e) {
- e.preventDefault();
- let divElementCollection = document.querySelectorAll('.admin-view .action form div');
- let lectureNameElement = divElementCollection[0].children[1];
- let dateElement = divElementCollection[1].children[1];
- let moduleElement = divElementCollection[2].children[1];
- if (validateInputs(lectureNameElement.value, dateElement.value, moduleElement.value) === false) {
- return;
- }
- let modulesListElement = document.querySelector('.user-view .modules');
- if (checkIfModuleExists(Array.from(modulesListElement.children), moduleElement.value) === false) {
- let currentModule = createModule(moduleElement.value);
- modulesListElement.appendChild(currentModule);
- }
- let targetedModule = getModule(Array.from(modulesListElement.children), moduleElement.value);
- let newLecture = createLecture(lectureNameElement.value, dateElement.value, datesObj);
- let lectureDate = getDate(dateElement.value);
- datesObj[lectureDate] = newLecture;
- datesObj = sortDates(datesObj);
- setLectures(datesObj, targetedModule, modulesListElement);
- }
- function validateInputs(lecture, date, module) {
- if (!(lecture.trim() == '' || date.trim() == '' || module == 'Select module')) {
- return true;
- }
- return false;
- }
- function createModule(module) {
- let divElement = document.createElement('div');
- divElement.setAttribute('class', 'module');
- let moduleh3Element = document.createElement('h3');
- moduleh3Element.textContent = `${module.toUpperCase()}-MODULE`;
- divElement.appendChild(moduleh3Element);
- let ulElement = document.createElement('ul');
- divElement.appendChild(ulElement);
- return divElement;
- }
- function checkIfModuleExists(modulesArray, moduleName) {
- let isName = false;
- for (let el of modulesArray) {
- let currentModuleName = el.children[0].textContent;
- if (currentModuleName === `${moduleName.toUpperCase()}-MODULE`) {
- isName = true;
- break
- }
- }
- return isName;
- }
- function getModule(modulesArray, moduleName) {
- let moduleElement = undefined;
- for (let el of modulesArray) {
- let currentModuleName = el.children[0].textContent;
- if (currentModuleName === `${moduleName.toUpperCase()}-MODULE`) {
- moduleElement = el;
- break;
- }
- }
- return moduleElement;
- }
- function getDate(dateInfo) {
- let date = dateInfo.split('T');
- let editedDate = date[0].replaceAll('-', '/');
- return editedDate;
- }
- function createLecture(name, dateInfo) {
- let editedDate = getDate(dateInfo);
- let time = dateInfo.split('T')[1];
- let liElement = document.createElement('li');
- liElement.setAttribute('class', 'flex');
- let h4Element = document.createElement('h4');
- h4Element.textContent = `${name.toUpperCase()} - ${editedDate} - ${time}`;
- let deleteButtonElement = document.createElement('button');
- deleteButtonElement.setAttribute('class', 'red');
- deleteButtonElement.textContent = 'Del';
- deleteButtonElement.addEventListener('click', deleteButtonHandler)
- liElement.appendChild(h4Element);
- liElement.appendChild(deleteButtonElement);
- return liElement;
- }
- function deleteButtonHandler(e) {
- let currentModule = e.currentTarget.parentElement.parentElement.parentElement;
- let lecturesList = e.currentTarget.parentElement.parentElement;
- let currentLecture = e.currentTarget.parentElement;
- currentLecture.remove();
- if (lecturesList.children.length === 0) {
- currentModule.remove();
- }
- }
- function sortDates(datesObject) {
- let datesArray = Object.keys(datesObject);
- sortedDatesObject = datesArray
- .sort((a,b) => a.localeCompare(b)).
- reduce((obj, key) => {
- obj[key] = datesObject[key];
- return obj;
- },
- {})
- return sortedDatesObject;
- }
- function setLectures(datesObject, module) {
- let listWithLectures = module.children[1];
- listWithLectures.innerHTML = '';
- for (let key in datesObject) {
- listWithLectures.appendChild(datesObject[key]);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement