1
0
Fork 0
This repository has been archived on 2024-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
letu/public/javascripts/marks.js

78 lines
2.5 KiB
JavaScript

const socket = io.connect();
const marks = document.getElementById("marksrow");
const evaluationTemplate = marks.querySelector("#evaluationTemplate");
const gradeTemplate = marks.querySelector("#gradeTemplate");
const details = document.getElementById("marksdetails");
const detailsBackground = document.getElementById("marksdetailsbackground");
let grades = [];
document.addEventListener("DOMContentLoaded", () => socket.emit("gradeGet"));
detailsBackground.addEventListener("click", invisible);
socket.on("gradeGet", data=>{
for (let grade of data)
grades.push(grade);
updateGrades()
});
function updateGrades() {
for (let grade of grades) {
let e = document.getElementById("UE"+grade.Evaluation.UE.id);
if (!e) {
let temp = evaluationTemplate.cloneNode(true);
temp.querySelector(".evaluationName").innerHTML = grade.Evaluation.UE.name;
temp.id = "UE"+grade.Evaluation.UE.id;
temp.classList.remove("invisible");
temp = marks.insertAdjacentElement("beforeend", temp);
e = temp;
}
let g = gradeTemplate.cloneNode(true);
g.querySelector(".gradeName").innerHTML = grade.Evaluation.name;
g.querySelector(".gradeMark").innerHTML = grade.score + "/" + grade.limit;
g.querySelector(".gradeComment").innerHTML = grade.comment ? grade.comment : "";
g.id = "Grade"+grade.Evaluation.id;
g.classList.remove("invisible");
let score = grade.score;
if (grade.limit != 20)
score = (20/grade.limit)*grade.score;
if (score < 4)
g.classList.add("marks-4");
else if (score < 6)
g.classList.add("marks-6");
else if (score < 8)
g.classList.add("marks-8");
else if (score < 10)
g.classList.add("marks-10");
else if (score < 12)
g.classList.add("marks-12");
else if (score < 14)
g.classList.add("marks-14");
else if (score < 16)
g.classList.add("marks-16");
else if (score < 18)
g.classList.add("marks-18");
else if (score < 20)
g.classList.add("marks-20");
g.addEventListener("click", () => gradeResume(grade));
e.querySelector(".grades").insertAdjacentElement("beforeend", g);
}
}
function gradeResume(grade) {
details.querySelector("#dsName").innerHTML = grade.Evaluation.name;
details.querySelector("#dsMarks").innerHTML = grade.score + "/" + grade.limit;
details.querySelector("#dsComment").innerHTML = grade.comment ? grade.comment : "";
visible();
}
function visible() {
details.classList.remove("invisible");
detailsBackground.classList.remove("invisible");
}
function invisible() {
details.classList.add("invisible");
detailsBackground.classList.add("invisible");
}