You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
4.8 KiB

window.onload = function () {
addForm = document.getElementById("add");
addForm.style.display = "none";
table = document.getElementById("studentInfo");
table.style.display = "none"
edit = document.getElementById("editForm");
edit.style.display = "none";
document.getElementById('editStudent').addEventListener("click", async (event) => {
event.preventDefault();
var response = await fetch('/student');
var students = await response.json();
var sName = document.getElementById("findName").value;
for (s of students) {
if (sName == s.name) {
edit.style.display = "inline-block"
document.getElementById("editName").innerHTML = s.name;
document.getElementById("editWeight").value = s.weight;
document.getElementById("editHeight").value = s.height;
document.getElementById("editHairColour").value = s.hairColour;
document.getElementById("editGpa").value = s.gpa;
}
}
});
displayStudents();
}
function addStudent() {
console.log("add student");
form = document.getElementById("add");
form.style.display = "block";
}
function addData() {
var name = document.getElementById("addName").value;
var weight = document.getElementById("addWeight").value;
var height = document.getElementById("addHeight").value;
var hairColour = document.getElementById("addHairColour").value;
var gpa = document.getElementById("addGpa").value;
var data = { name, weight, height, hairColour, gpa };
var option = { method: "POST", body: JSON.stringify(data), headers: { 'Content-Type': 'application/json' } };
console.log(option);
fetch('/student', option);
}
async function displayStudents() {
var response = await fetch('/student');
var students = await response.json();
for (s of students) {
var student = document.createElement('div');
student.className = "displayDiv";
student.style.display = "inline-block";
student.style.textAlign = "center";
student.style.margin = "20px";
student.innerText = s.name + "\n" + s.gpa;
student.style.height = parseInt(s.height) + "px";
student.style.width = parseInt(s.weight) + "px";
student.style.overflow = "auto";
student.style.padding = "20px";
student.style.color = s.hairColour;
student.style.border = "1px solid black";
student.addEventListener("mouseenter", function (event) {
table.style.display = "table";
var info = event.target.innerText;
list = info.split("\n");
var weight = event.target.style.width;
var height = event.target.style.height;
document.getElementById("sName").innerHTML = list[0];
document.getElementById("sWeight").innerHTML = weight.substring(0, weight.length - 2);
document.getElementById("sHeight").innerHTML = height.substring(0, height.length - 2);
document.getElementById("sHairColour").innerHTML = event.target.style.color;
document.getElementById("sGpa").innerHTML = list[1];
})
document.body.appendChild(student);
}
}
function deleteData() {
console.log("in delete")
var name = document.getElementById("findName").value;
var data = { name };
var option = {
method: 'DELETE',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
}
console.log(option)
fetch('/student', option);
window.location.reload();
}
function editData() {
var response = fetch('/student');
var students = response.json();
var sName = document.getElementById("findName").value;
for (s of students) {
if (sName == s.name) {
edit.style.display = "inline-block"
document.getElementById("editName").innerHTML = s.name;
document.getElementById("editWeight").value = s.weight;
document.getElementById("editHeight").value = s.height;
document.getElementById("editHairColour").value = s.hairColour;
document.getElementById("editGpa").value = s.gpa;
}
}
}
function updateData() {
console.log("update data")
var name = document.getElementById("editName").innerHTML;
var weight = document.getElementById("editWeight").value;
var height = document.getElementById("editHeight").value;
var hairColour = document.getElementById("editHairColour").value;
var gpa = document.getElementById("editGpa").value;
var data = { name, weight, height, hairColour, gpa };
var options = {
method: 'PUT',
body: JSON.stringify(data),
headers: {
'Content-Type': 'application/json'
}
}
console.log(options)
fetch('/student', options)
window.location.reload();
}