Able to show and hide null-courses

This commit is contained in:
Thomas Forgione 2017-10-04 11:25:59 +02:00
parent 8b8458a33e
commit f7ff1bbb37
No known key found for this signature in database
GPG Key ID: C75CD416BD1FFCE1
3 changed files with 42 additions and 11 deletions

View File

@ -13,13 +13,15 @@ table.table.table-bordered.table-striped.table-hover
td #{course[type]} td #{course[type]}
td #{course.totalTdEquivalent} td #{course.totalTdEquivalent}
tr#extend tr#extend
td td(colspan=2+types.length)
a(href="#") ... a#extendText(href="#") ...
each type in types
td each course in noCourses
a(href="#") ... tr.no-courses
td td #{course.name}
a(href="#") ... each type in types
td #{course[type]}
td #{course.totalTdEquivalent}
tr.table-active tr.table-active
td td

View File

@ -119,7 +119,17 @@ module.exports.totalTableByCourse = function(req, res, render, next) {
for (let type in cal.Type) { for (let type in cal.Type) {
res.locals.types.push(type); res.locals.types.push(type);
} }
res.locals.courses = result.courses; res.locals.courses = [];
res.locals.noCourses = [];
for (let course of result.courses) {
if (course.totalTdEquivalent > 0) {
res.locals.courses.push(course);
} else {
res.locals.noCourses.push(course);
}
}
res.locals.total = result.total; res.locals.total = result.total;
render('totalTableByCourse.pug'); render('totalTableByCourse.pug');
}); });

View File

@ -2,6 +2,7 @@ var loadingDiv = document.getElementById('loading');
var errorDiv = document.getElementById('error'); var errorDiv = document.getElementById('error');
var resultDiv = document.getElementById('result'); var resultDiv = document.getElementById('result');
const timeout = 10000; const timeout = 10000;
var emptyCoursesShown = false;
function getTable() { function getTable() {
// Send XHR to totalTable // Send XHR to totalTable
@ -27,32 +28,50 @@ function setData(text) {
loadingDiv.style.display = "none"; loadingDiv.style.display = "none";
errorDiv.style.display = "none"; errorDiv.style.display = "none";
resultDiv.innerHTML = text; resultDiv.innerHTML = text;
emptyCoursesShown = false;
var emptyCourses = document.getElementsByClassName('no-courses'); var emptyCourses = document.getElementsByClassName('no-courses');
if (emptyCourses.length === 0) { if (emptyCourses.length === 0) {
showEmptyCourses(); showEmptyCourses();
document.getElementById('extend').style.display = "none";
} else { } else {
hideEmptyCourses(); hideEmptyCourses();
document.getElementById('extend').addEventListener('click', function() { document.getElementById('extend').addEventListener('click', function() {
showEmptyCourses(); switchEmptyCourses();
}); });
} }
updateExtendText();
} }
function showEmptyCourses() { function showEmptyCourses() {
emptyCoursesShown = true;
var emptyCourses = document.getElementsByClassName('no-courses'); var emptyCourses = document.getElementsByClassName('no-courses');
for (var i = 0; i < emptyCourses.length; i++) { for (var i = 0; i < emptyCourses.length; i++) {
emptyCourses[i].style.display = ""; emptyCourses[i].style.display = "";
} }
document.getElementById('extend').style.display = "none";
} }
function hideEmptyCourses() { function hideEmptyCourses() {
emptyCoursesShown = false;
var emptyCourses = document.getElementsByClassName('no-courses'); var emptyCourses = document.getElementsByClassName('no-courses');
for (var i = 0; i < emptyCourses.length; i++) { for (var i = 0; i < emptyCourses.length; i++) {
emptyCourses[i].style.display = "none"; emptyCourses[i].style.display = "none";
} }
document.getElementById('extend').style.display = ""; }
function switchEmptyCourses() {
if (emptyCoursesShown) {
hideEmptyCourses();
} else {
showEmptyCourses();
}
updateExtendText();
}
function updateExtendText() {
document.getElementById('extendText').innerHTML =
"Courses with null TD equivalent " + (emptyCoursesShown ? "(hide)" : "(show)");
} }
function setError() { function setError() {