View difference between Paste ID: 15sVnKUx and uaLSFPx4
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