View difference between Paste ID: 3sm40wp8 and 9zmwuHac
SHOW: | | - or go back to the newest paste.
1
function solve() {
2
    let newLectureInputElements = document.querySelectorAll('div[class="form-control"] input');
3
    let lectureNameInput = newLectureInputElements[0];
4
    let dateInput = newLectureInputElements[1];
5
    let selectInput = document.querySelector('div[class="form-control"] select');
6
    let addLectureBtn = document.querySelector('div[class="form-control"] button');
7
    // console.log(lectureNameInput.value);
8
    // console.log(dateInput.value);
9
    // console.log(selectInput.value);
10
    // console.log(addLectureBtn);
11
12
    let modulesDivElement = document.querySelector('div[class="modules"]');
13
    // console.log(modulesDivElement);
14
15
    addLectureBtn.addEventListener("click", function (e) {
16
        if (lectureNameInput.value && dateInput.value && selectInput.value !== "Select module") {
17
            e.preventDefault();
18
19
            let allModules = Array.from(modulesDivElement.children);
20
21
            let customDate = new Date(dateInput.value);
22
            let resultDate = `${customDate.getFullYear()}/${customDate.getMonth() + 1}/${customDate.getDate()} - ${customDate.getHours()}:${customDate.getMinutes() < 10 ? '0' + customDate.getMinutes() : customDate.getMinutes()}`;
23
            let currentModule = allModules.find(x => x.firstChild.textContent.includes(selectInput.value.toUpperCase()));
24
            let ulElement = document.createElement("ul");
25
            let liElement = document.createElement("li");
26
            liElement.classList.add("flex");
27
            let h4Element = document.createElement("h4");
28
            h4Element.textContent = `${lectureNameInput.value} - ${resultDate}`;
29
            let delBtn = document.createElement("button");
30
            delBtn.classList.add("red");
31
            delBtn.textContent = "Del";
32
33
            if (currentModule) {
34
35
36
                liElement.appendChild(h4Element);
37
                liElement.appendChild(delBtn);
38
                // ulElement.appendChild(liElement);
39
                currentModule.children[1].appendChild(liElement);
40
41
42
                let allLiElements = Array.from(currentModule.children[1].children);
43
                allLiElements.sort((a, b) => {
44
                    let indexDash = a.firstChild.textContent.indexOf("-");
45
                    let aname = a.firstChild.textContent.substring(0, indexDash - 1);
46
                    let adate = a.firstChild.textContent.substring(indexDash + 2);
47
48
                    let bname = b.firstChild.textContent.substring(0, indexDash - 1);
49
                    let bdate = b.firstChild.textContent.substring(indexDash + 2);
50
                    if (aname === bname) {
51
                        let res = adate.localeCompare(bdate)
52
                        console.log(res);
53
                        return res;
54
                    }
55
                });
56
57
58
                // currentModule.children[1].children = allLiElements;
59
                currentModule.children[1].innerHTML = "";
60
                allLiElements.forEach(x => {
61
                    currentModule.children[1].appendChild(x);
62
                })
63
                modulesDivElement.appendChild(currentModule);
64
            } else {
65
                let moduleDiv = document.createElement("div");
66
                moduleDiv.classList.add("module");
67
                let h3Element = document.createElement("h3");
68
                h3Element.textContent = selectInput.value.toUpperCase() + "-MODULE";
69
70
                liElement.appendChild(h4Element);
71
                liElement.appendChild(delBtn);
72
                ulElement.appendChild(liElement);
73
74
75
                moduleDiv.appendChild(h3Element);
76
                moduleDiv.appendChild(ulElement);
77
78
                modulesDivElement.appendChild(moduleDiv);
79
            }
80
81
            delBtn.addEventListener("click", function (e) {
82
                let currentUlElement = e.target.parentElement.parentElement;
83
                let curentLiElement = e.target.parentElement;
84
85
                if (Array.from(currentUlElement.children).length > 1) {
86
                    currentUlElement.removeChild(curentLiElement);
87
                } else {
88
                    currentUlElement.parentElement.parentElement.removeChild(currentUlElement.parentElement);
89
                }
90
            })
91
92
            lectureNameInput.value = ""
93
            dateInput.value = ""
94
            selectInput.value = "Select module"
95
        }
96
    });
97
};