blob: 86d59fbedded5923ea9024bb7b70cca88e7c2433 (
plain)
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
108
109
110
111
112
113
114
|
// Register 'Enter' listeners on all inputs
allInputs = Array.from(document.getElementsByClassName('input'))
.filter(e => e.type == 'number');
allInputs.forEach(e => e.addEventListener('keydown', handleEnterKey));
// Register onsubmit handler for form
document.getElementById("form").addEventListener('submit', (el) => {
Array.from(event.target.getElementsByTagName('input')).forEach(i => i.disabled = false);
});
function handleEnterKey(event) {
if (event.key === "Enter" || event.key === "Tab") {
event.preventDefault();
//Isolate the node that we're after
const currentNode = event.target;
//Find the current tab index.
currentIndex = [...allInputs].findIndex(el => currentNode.isEqualNode(el));
//focus the following element
const targetIndex = (currentIndex + 1) % allInputs.length;
const targetNode = allInputs[targetIndex];
if (!targetNode.parentElement.parentElement.isEqualNode(currentNode.parentElement.parentElement)) {
// going to new row
if (currentNode.value != "" && allInputs[currentIndex-1].value != "") {
onClickSetCheck(currentNode.parentElement.parentElement.children[3].children[0]);
}
}
targetNode.focus();
}
}
function setReset(row, values=true) {
let lbsInput = row.children[1].children[0];
let repsInput = row.children[2].children[0];
let doneButton = row.children[3].children[0];
// Enable inputs
lbsInput.disabled = false;
repsInput.disabled = false;
// Remove classes
lbsInput.classList.remove('is-success');
lbsInput.classList.remove('is-danger');
repsInput.classList.remove('is-success');
repsInput.classList.remove('is-danger');
doneButton.classList.remove('is-success');
if (values) {
lbsInput.value = '';
repsInput.value = '';
}
}
function setSetid(row, id) {
let setNumber = row.children[0];
let lbsInput = row.children[1].children[0];
let repsInput = row.children[2].children[0];
let doneButton = row.children[3].children[0];
setNumber.textContent = id + 1;
}
function setCheck(row) {
// Disable input editing
row.children[1].firstChild.disabled = true;
row.children[2].firstChild.disabled = true;
// Add is-success to inputs
row.children[1].firstChild.classList.add('is-success')
row.children[2].firstChild.classList.add('is-success')
}
// Called when the check at the end of a set line is clicked
function onClickSetCheck(elem) {
if (elem.classList.contains('is-success')) {
setReset(elem.parentElement.parentElement, false);
} else {
elem.classList.add('is-success');
setCheck(elem.parentElement.parentElement);
}
}
function onClickAddSet(elem) {
// Create the new row
let tableBody = elem.parentElement.parentElement.children[0].children[1];
let row = tableBody.children[0].cloneNode(true);
// Add new row to table
setReset(row);
setSetid(row, tableBody.children.length)
row.addEventListener('keydown', handleEnterKey)
tableBody.appendChild(row)
}
function loadTimerTimes() {
}
function onClickPausePlayTimer(elem) {
if (elem.children[0].children[0].classList.contains('fa-play')) {
paused = false;
elem.children[0].children[0].classList.remove('fa-play');
elem.children[0].children[0].classList.add('fa-pause');
} else {
paused = true;
elem.children[0].children[0].classList.add('fa-play');
elem.children[0].children[0].classList.remove('fa-pause');
}
}
|