generated from LaunchCodeEducation/Launch-Checklist
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathscript.js
122 lines (115 loc) · 6.12 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
// Write your JavaScript code here!
//const { myFetch } = require("./scriptHelper");
// Write your JavaScript code here!
let fuelReady = false;
let cargoReady = false;
let fieldCheck;
window.addEventListener("load", function() {
this.fetch("https://handlers.education.launchcode.org/static/planets.json").then(function(response) {
response.json().then(function(json) {
let index = Math.floor(Math.random() * json.length);
console.log(json[index].name);
document.getElementById("missionTarget").innerHTML = `
<h2>Mission Destination</h2>
<ol>
<li>Name: ${json[index].name}</li>
<li>Diameter: ${json[index].diameter}</li>
<li>Star: ${json[index].star}</li>
<li>Distance from Earth: ${json[index].distance}</li>
<li>Number of Moons: ${json[index].moons}</li>
</ol>
<img src="${json[index].image}">
`;
});
});
let form = document.querySelector("form");
form.addEventListener("submit", function(event) {
let pilotNameInput = document.querySelector("input[name=pilotName]");
let coPilotNameInput = document.querySelector("input[name=copilotName]");
let fuelLevelInput = document.querySelector("input[name=fuelLevel]");
let cargoMassInput = document.querySelector("input[name=cargoMass]");
document.getElementById('launchStatus').innerText = 'Awaiting Information Before Launch';
document.getElementById('launchStatus').style.color= "black";
document.getElementById("pilotStatus").innerText = `Pilot ${pilotNameInput.value} Ready`;
document.getElementById("copilotStatus").innerText = `Co-Pilot ${coPilotNameInput.value} Ready`;
document.getElementById("fuelStatus").innerText = "Fuel Level high enough for launch";
document.getElementById("cargoStatus").innerText = "Cargo Mass low enough for launch";
fieldCheck = false;
cargoReady = false;
fuelReady = false;
if (pilotNameInput.value.trim() === "" || coPilotNameInput.value.trim() === "" || fuelLevelInput.value.trim() === "" || cargoMassInput.value.trim() === "") {
alert("All fields are required!");
event.preventDefault();
fieldCheck = false;
document.getElementById("faultyItems").style.visibility = "hidden";
} else if (typeof String(pilotNameInput.value) !== "string" || pilotNameInput.value.trim().length === 0) {
alert("Pilot name is required");
event.preventDefault();
fieldCheck = false;
document.getElementById("faultyItems").style.visibility = "hidden";
} else if (!isNaN(Number(pilotNameInput.value)) && pilotNameInput.value.trim().length > 0) {
alert("Invalid Input: No numbers can be used in pilot name field");
event.preventDefault();
fieldCheck = false;
document.getElementById("faultyItems").style.visibility = "hidden";
} else if (typeof String(coPilotNameInput.value) !== "string" || coPilotNameInput.value.trim().length === 0) {
alert("Co-Pilot field is required");
event.preventDefault();
fieldCheck = false;
document.getElementById("faultyItems").style.visibility = "hidden";
} else if (!isNaN(Number(coPilotNameInput.value)) && coPilotNameInput.value.trim().length > 0) {
alert("Invalid Input: No numbers can be used in copilot name field");
event.preventDefault();
fieldCheck = false;
document.getElementById("faultyItems").style.visibility = "hidden";
} else if (typeof Number(fuelLevelInput.value) !== "number" || isNaN(Number(fuelLevelInput.value))) {
alert("Invalid Input: only numbers can be used in fuel level input");
event.preventDefault();
fieldCheck = false;
document.getElementById("faultyItems").style.visibility = "hidden";
} else if (typeof Number(cargoMassInput.value) !== "number" || isNaN(Number(cargoMassInput.value))) {
alert("Invalid Input: Only numbers can be used for cargo mass");
event.preventDefault();
fieldCheck = false;
document.getElementById("faultyItems").style.visibility = "hidden";
} else {
fieldCheck = true;
}
if (Number(fuelLevelInput.value) < 10000 && fieldCheck) {
document.getElementById("faultyItems").style.visibility = "visible";
document.getElementById("fuelStatus").innerText = `There is not enough fuel for the journey! We have ${fuelLevelInput.value}L loaded and at least 10,000L are needed!`
document.getElementById('launchStatus').innerText = 'Shuttle not ready for launch!';
document.getElementById('launchStatus').style.color= "red";
fuelReady = false;
event.preventDefault();
} else {
fuelReady = true;
}
if (Number(cargoMassInput.value) > 10000 && fieldCheck) {
document.getElementById("faultyItems").style.visibility = "visible";
document.getElementById("cargoStatus").innerText = `There is too much mass for the shuttle to take off! Max load is 10,000kg and we have ${cargoMassInput.value}kg!`
document.getElementById('launchStatus').innerText = 'Shuttle not ready for launch!';
document.getElementById('launchStatus').style.color= "red";
cargoReady = false;
event.preventDefault();
} else {
cargoReady = true;
}
if (fuelReady && cargoReady && fieldCheck) {
document.getElementById("faultyItems").style.visibility = "visible";
document.getElementById('launchStatus').innerText = 'Shuttle is ready for launch!';
document.getElementById('launchStatus').style.color= "green";
event.preventDefault()
}
});
});
let listedPlanets;
// Set listedPlanetsResponse equal to the value returned by calling myFetch()
let listedPlanetsResponse;
listedPlanetsResponse.then(function (result) {
listedPlanets = result;
console.log(listedPlanets);
}).then(function () {
console.log(listedPlanets);
// Below this comment call the appropriate helper functions to pick a planet fom the list of planets and add that information to your destination.
})