summaryrefslogtreecommitdiff
path: root/app/static/js/record.js
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)
}