-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscript.js
122 lines (98 loc) · 5.56 KB
/
script.js
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
115
116
117
118
119
120
121
122
document.addEventListener('DOMContentLoaded', function () {
const form = document.getElementById('dataForm');
const downloadLink = document.getElementById('downloadLink');
const formEntriesContainer = document.getElementById('formEntries');
form.addEventListener('submit', function (event) {
event.preventDefault();
const teamColor = document.querySelector('input[name="teamColor"]:checked').value;
const team = parseInt(document.getElementById('team').value);
const startPos = document.querySelector('input[name="start_pos"]:checked').value;
const coneHigh = parseInt(document.querySelector('input[name="cone_high"]:checked').value);
const coneMid = parseInt(document.querySelector('input[name="cone_mid"]:checked').value);
const coneLow = parseInt(document.querySelector('input[name="cone_low"]:checked').value);
const cubeHigh = parseInt(document.querySelector('input[name="cube_high"]:checked').value);
const cubeMid = parseInt(document.querySelector('input[name="cube_mid"]:checked').value);
const cubeLow = parseInt(document.querySelector('input[name="cube_low"]:checked').value);
const mobility = document.querySelector('input[name="mobility"]:checked').value;
// Checkboxes for Cone Intake
const coneIntakeCheckboxes = document.querySelectorAll('input[name="cone_intake"]:checked');
const coneIntake = Array.from(coneIntakeCheckboxes).map(checkbox => checkbox.value);
// Checkboxes for Cube Intake
const cubeIntakeCheckboxes = document.querySelectorAll('input[name="cube_intake"]:checked');
const cubeIntake = Array.from(cubeIntakeCheckboxes).map(checkbox => checkbox.value);
// Save the data in localStorage
saveDataLocally(teamColor, team, startPos, coneHigh, coneMid, coneLow, cubeHigh, cubeMid, cubeLow, mobility, coneIntake, cubeIntake);
// Clear form fields after submission
form.reset();
// Update the form entries display
updateFormEntries();
});
function saveDataLocally(teamColor, team, startPos, coneHigh, coneMid, coneLow, cubeHigh, cubeMid, cubeLow, mobility, coneIntake, cubeIntake) {
const formData = {
teamColor,
team,
startPos,
coneHigh,
coneMid,
coneLow,
cubeHigh,
cubeMid,
cubeLow,
mobility,
coneIntake,
cubeIntake
};
// Check if data already exists in localStorage
let existingData = JSON.parse(localStorage.getItem('formDataList')) || [];
// Add the new form data to the existing list
existingData.push(formData);
// Store the updated list in localStorage
localStorage.setItem('formDataList', JSON.stringify(existingData));
}
function updateFormEntries() {
const formDataList = JSON.parse(localStorage.getItem('formDataList'));
if (formDataList && formDataList.length > 0) {
formEntriesContainer.innerHTML = '<h2>Form Entries</h2>';
let tableHTML = '<table border="1"><tr><th>Team Color</th><th>Team</th><th>Start Position</th><th>Cone High</th><th>Cone Mid</th><th>Cone Low</th><th>Cube High</th><th>Cube Mid</th><th>Cube Low</th><th>Mobility</th><th>Cone Intake</th><th>Cube Intake</th></tr>';
formDataList.forEach(formData => {
tableHTML += `<tr><td>${formData.teamColor}</td><td>${formData.team}</td><td>${formData.startPos}</td><td>${formData.coneHigh}</td><td>${formData.coneMid}</td><td>${formData.coneLow}</td><td>${formData.cubeHigh}</td><td>${formData.cubeMid}</td><td>${formData.cubeLow}</td><td>${formData.mobility}</td><td>${formData.coneIntake.join(', ')}</td></tr>${formData.cubeIntake.join(', ')}</td></tr>`;
});
tableHTML += '</table>';
formEntriesContainer.innerHTML += tableHTML;
// Display the download link
downloadLink.style.display = 'block';
}
}
function generateCSVContent() {
const formDataList = JSON.parse(localStorage.getItem('formDataList'));
if (formDataList && formDataList.length > 0) {
let csvContent = 'Team Color,Team,Start Position,Cone High,Cone Mid,Cone Low,Cube High,Cube Mid,Cube Low,Mobility,Cone Intake,Cube Intake\n';
formDataList.forEach(formData => {
csvContent += `${formData.teamColor},${formData.team},${formData.startPos},${formData.coneHigh},${formData.coneMid},${formData.coneLow},${formData.cubeHigh},${formData.cubeMid},${formData.cubeLow},${formData.mobility},"${formData.coneIntake.join(', ')}","${formData.cubeIntake.join(', ')}"\n`;
});
return csvContent;
}
return null;
}
function downloadCSV() {
const csvContent = generateCSVContent();
if (csvContent) {
const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' });
const link = document.createElement('a');
link.href = URL.createObjectURL(blob);
link.download = 'form_data.csv';
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
// Clear the stored form data from local storage
localStorage.removeItem('formDataList');
// Update the form entries display after clearing
updateFormEntries();
}
}
updateFormEntries();
downloadLink.addEventListener('click', function () {
downloadCSV();
});
});