SHOW:
|
|
- or go back to the newest paste.
| 1 | function solve() {
| |
| 2 | let inputName = document.querySelector('input[name="lecture-name"]');
| |
| 3 | let inputDate = document.querySelector('input[name="lecture-date"]');
| |
| 4 | let inputOptions = document.querySelector('select[name="lecture-module"]');
| |
| 5 | let addBtn = document.querySelector('.form-control>button');
| |
| 6 | ||
| 7 | let modules = document.querySelector('.modules');
| |
| 8 | addBtn.addEventListener('click', (e) => {
| |
| 9 | e.preventDefault(); | |
| 10 | if (inputName.value && inputDate.value && inputOptions.value != "Select module") {
| |
| 11 | let moduleDiv = document.createElement('div');
| |
| 12 | moduleDiv.className = 'module'; | |
| 13 | let ul = document.createElement('ul');
| |
| 14 | let exists = false; | |
| 15 | let existentMod = document.querySelector(`#${inputOptions.value}`);
| |
| 16 | if (existentMod) {
| |
| 17 | exists = true; | |
| 18 | moduleDiv = document.querySelector(`#${inputOptions.value}`).parentElement;
| |
| 19 | ul = moduleDiv.children[1]; | |
| 20 | } | |
| 21 | let moduleName = document.createElement('h3');
| |
| 22 | moduleName.id = inputOptions.value; | |
| 23 | let splittedDate = inputDate.value.split('T');
| |
| 24 | let date = splittedDate[0]; | |
| 25 | let time = splittedDate[1]; | |
| 26 | let correctDate = date.split('-').join('/');
| |
| 27 | moduleName.innerHTML = `${inputOptions.value.toUpperCase()}-MODULE`;
| |
| 28 | let li = document.createElement('li');
| |
| 29 | li.className = 'flex'; | |
| 30 | let lectureName = document.createElement('h4');
| |
| 31 | lectureName.innerHTML = `${inputName.value} - ${correctDate} - ${time}`;
| |
| 32 | let delBtn = document.createElement('button');
| |
| 33 | delBtn.innerHTML = 'Del'; | |
| 34 | delBtn.className = "red"; | |
| 35 | delBtn.addEventListener('click', () => {
| |
| 36 | let parent = delBtn.parentNode.parentNode; | |
| 37 | delBtn.parentElement.remove(); | |
| 38 | if (parent.childElementCount == 0) {
| |
| 39 | parent.parentNode.remove(); | |
| 40 | } | |
| 41 | }) | |
| 42 | if (!exists) {
| |
| 43 | moduleDiv.appendChild(moduleName); | |
| 44 | } | |
| 45 | ul.appendChild(li); | |
| 46 | li.appendChild(lectureName); | |
| 47 | li.appendChild(delBtn); | |
| 48 | ul.appendChild(li); | |
| 49 | moduleDiv.appendChild(ul); | |
| 50 | if (!exists) {
| |
| 51 | modules.appendChild(moduleDiv); | |
| 52 | } | |
| 53 | sortList(moduleDiv); | |
| 54 | } | |
| 55 | }) | |
| 56 | function sortList(list) {
| |
| 57 | let sorted, i; | |
| 58 | let sortFlag = true; | |
| 59 | while (sortFlag) {
| |
| 60 | sortFlag = false; | |
| 61 | let LiEle = list.getElementsByTagName("LI");
| |
| 62 | for (i = 0; i < LiEle.length - 1; i++) {
| |
| 63 | sorted = false; | |
| 64 | if (LiEle[i].innerHTML.split(' - ').slice(1).join(' ').toLowerCase() > LiEle[i + 1].innerHTML.toLowerCase().split(' - ').slice(1).join(' ')) {
| |
| 65 | sorted = true; | |
| 66 | break; | |
| 67 | } | |
| 68 | } | |
| 69 | if (sorted) {
| |
| 70 | LiEle[i].parentNode.insertBefore(LiEle[i + 1], LiEle[i]); | |
| 71 | sortFlag = true; | |
| 72 | } | |
| 73 | } | |
| 74 | } | |
| 75 | } | |
| 76 |