blob: aa5a3b3b1bf067d3cd82211ecb6070230a698eff (
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
|
// Register 'Enter' listeners on all inputs
allInputs = Array.from(document.getElementsByClassName('input'))
.filter(e => e.type == 'number');
allInputs.forEach(e => e.addEventListener('keypress', handleEnterKey));
function handleEnterKey(event) {
if (event.key === "Enter") {
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;
allInputs[targetIndex].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[1].children[1];
let row = tableBody.children[0].cloneNode(true);
// Add new row to table
setReset(row);
setSetid(row, tableBody.children.length)
tableBody.appendChild(row)
}
|