Skip to content

Commit

Permalink
Fixes some offline saving capability
Browse files Browse the repository at this point in the history
Fixes json so it can be directly submitted to the server from a different device. Also fixed where the attempts charge didn't have a category.
  • Loading branch information
snaapsh0t12 committed Nov 28, 2023
1 parent 26a8338 commit 2a23263
Showing 1 changed file with 29 additions and 18 deletions.
47 changes: 29 additions & 18 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ const infiniteRechargeSurvey = {
{ "name": "Middle Cone", "type": "number", "category": "nTeleopCones" },
{ "name": "Bottom Cone", "type": "number", "category": "oTeleopCones" },

{ "name": "Team attempts Charge?", "type": "toggle", "xCategory": "Endgame", "group": "Endgame (Charger)" },
{ "name": "Team attempts Charge?", "type": "toggle", "category": "xEndgame", "group": "Endgame (Charger)" },
{ "name": "Charge station", "type": "select", "category": "yEndgame", "values":["No","Docked","Engaged"]},
// { "name":"Links","type":"number"},

Expand Down Expand Up @@ -208,11 +208,11 @@ function postSurvey(surveyJson){
/** Stores the current unsaved survey to `localStorage` */
function backupSurvey() {
localStorage.backup = JSON.stringify([
{ name: "Team", value: teamMetric.value },
{ name: "Matchnum", value: matchMetric.value },
{ name: "Auth", value: authPasswd.value },
{ name: "Absent", value: isAbsent },
{ name: "Name", value: scoutName.value},
{ name: "Team", value: teamMetric.value, category: teamMetric.category },
{ name: "Matchnum", value: matchMetric.value, category: matchMetric.category },
{ name: "Auth", value: authPasswd.value, category: authPasswd.category },
{ name: "Absent", value: isAbsent, category: isAbsent.category },
{ name: "Name", value: scoutName.value, category: scoutName.category },
...gameMetrics.map(metric => { return { name: metric.name, value: metric.value, category: metric.category } })
]);
}
Expand Down Expand Up @@ -366,12 +366,12 @@ function saveSurvey() {
if (!confirm("Save match data OFFLINE?")) return;
let surveys = JSON.parse(localStorage.surveys ?? "[]");
surveys.push([
{ name: "Team", value: teamMetric.value },
{ name: "Matchnum", value: matchMetric.value },
{ name: "Absent", value: isAbsent },
{ name: "Location", value: locationSelect.value },
{ name: "Name", value: scoutName.value},
...gameMetrics.map(metric => { return { name: metric.name, value: JSON.stringify(metric.value) } })
{ name: "Team", value: teamMetric.value, category: "1Important" },
{ name: "Matchnum", value: matchMetric.value, category: "2Important" },
{ name: "Absent", value: isAbsent, category: "3Important" },
{ name: "Location", value: locationSelect.value, category: "5Important" },
{ name: "Name", value: scoutName.value, category: "4Important" },
...gameMetrics.map(metric => { return { name: metric.name, value: JSON.stringify(metric.value), category: metric.category } })
]);
localStorage.surveys = JSON.stringify(surveys);
resetSurvey(false);
Expand All @@ -380,11 +380,11 @@ function saveSurvey() {
if (!confirm("Save match data online?")) return;
let surveys = JSON.parse(localStorage.surveys ?? "[]");
surveys.push([
{ name: "Team", value: teamMetric.value },
{ name: "Matchnum", value: matchMetric.value },
{ name: "Absent", value: isAbsent },
{ name: "Location", value: locationSelect.value },
{ name: "Name", value: scoutName.value},
{ name: "Team", value: teamMetric.value, category: "1Important" },
{ name: "Matchnum", value: matchMetric.value, category: "2Important" },
{ name: "Absent", value: isAbsent, category: "3Important" },
{ name: "Location", value: locationSelect.value, category: "5Important" },
{ name: "Name", value: scoutName.value, category: "4Important" },
...gameMetrics.map(metric => { return { name: metric.name, value: metric.value } })
]);
postSurvey([
Expand Down Expand Up @@ -429,7 +429,18 @@ function downloadSurveys(askUser = true) {
anchor.href = "data:text/plain;charset=utf-8,";
switch (downloadSelect.value) {
case "JSON":
anchor.href += encodeURIComponent(localStorage.surveys);
surveyJson = JSON.parse(localStorage.surveys);
newJson = '{\n"data": {\n';
JSON.stringify(surveyJson[0].forEach(metric => {
prettyName = metric.name;
if (typeof metric.value == "string") newJson += (` "${prettyName}": { "content": "${metric.value.replace('"', "").replace('"', "")}", "category": "${metric.category}" },\n`);
else newJson += (` "${prettyName}": { "content": "${JSON.stringify(metric.value)}", "category": "${metric.category}" },\n`);
}));
// remove last comma
newJson = newJson.slice(0, -2);
newJson += '\n}\n}';
anchor.href += encodeURIComponent(newJson);
console.log(newJson);
anchor.download = fileName + ".json";
break;
case "CSV":
Expand Down

0 comments on commit 2a23263

Please sign in to comment.