Repository navigation
Expand file tree
/
Copy pathjs_script.js
More file actions
121 lines (91 loc) · 2.8 KB
/
Copy pathjs_script.js
File metadata and controls
121 lines (91 loc) · 2.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
window.onload = function(){
var list = document.querySelector("#list");
var input = document.querySelector("#input");
var left = document.querySelector("#left");
input.addEventListener("keydown", createEl);
function giveEvent(feed) {
console.log(feed)
}
function becomeEditor(feed) {
var listItem = feed.target;
var editor = document.createElement("input");
editor.value = listItem.innerText;
listItem.innerText = ""
listItem.appendChild(editor);
listItem.removeEventListener("click", becomeEditor)
listItem.addEventListener("keydown", becomeElAgain)
}
function makeCheckbox(div) {
var box = document.createElement("input");
box.type = "checkbox";
box.addEventListener("click", function(feed) {
div.firstChild.removeEventListener("click", becomeEditor);
div.style.textDecoration = "line-through";
left.innerText = parseInt(left.innerText) - 1;
box.parentNode.removeChild(box.nextSibling);
box.parentNode.removeChild(box.nextSibling);
box.parentNode.removeChild(box);
})
div.appendChild(box);
}
function becomeElAgain(feed) {
textInput = feed.target;
textInput.removeEventListener("input", becomeElAgain)
text = textInput.value
if (feed.keyIdentifier == "Enter") {
el = textInput.parentNode;
el.removeChild(textInput);
el.innerText = text;
el.addEventListener("click", becomeEditor)
}
}
function finishToDo(feed) {
console.log(feed.target)
listItem.removeEventListener("click", becomeEditor);
listItem.removeEventListener("click", finishToDo);
listItem.style.textDecoration = "line-through";
left.innerText = parseInt(left.innerText) - 1;
}
function createEl(feed) {
console.log(feed);
var listItem = feed.target;
if (feed.keyIdentifier == "Enter") {
var el = document.createElement("li");
el.innerText = listItem.value;
el.addEventListener("click", becomeEditor);
var div = document.createElement("div");
div.appendChild(el);
makeCheckbox(div);
makePrioritizer(div);
list.insertBefore(div, list.firstElementChild);
listItem.value = "";
left.innerText = parseInt(left.innerText) + 1;
}
}
function makePrioritizer(div) {
up = document.createElement("button");
up.innerText = "Up";
up.addEventListener("click", prioritizeUp)
div.appendChild(up);
down = document.createElement("button");
down.innerText = "Down";
down.addEventListener("click", prioritizeDown);
div.appendChild(down);
}
function prioritizeUp(feed) {
div = feed.target.parentNode;
if (div.previousSibling != div.parentNode.firstChild){
previousItem = div.previousSibling;
div.parentNode.insertBefore(div, previousItem);
}
}
function prioritizeDown(feed) {
div = feed.target.parentNode;
if (div.nextSibling == div.parentNode.lastChild){
div.parentNode.appendChild(div)
}
else if (div.nextSibling.nextSibling != null) {
div.parentNode.insertBefore(div, div.nextSibling.nextSibling)
}
}
}