const config = require('settings/config'); const cal = require('calendar'); const redirectIfNotLogged = require('auth/views').redirectIfNotLogged; function computeUserTable(user, callback) { let result = {}; cal.getTotal(user, (table) => { let courses = []; let total = { name: "Total", type: "", time: 0, tdEquivalent: 0, } for (let key in table) { courses.push({ name: key, type: table[key].type, time: table[key].time, tdEquivalent: table[key].tdEquivalent, }); total.time += table[key].time; total.tdEquivalent += table[key].tdEquivalent; } result.courses = courses; result.total = total; callback(result); }); } module.exports.total = redirectIfNotLogged('total', function(req, res, render) { render('total.pug'); }); module.exports.totalTable = function(req, res, render, next) { if (req.session.user === undefined) { res.status(404); res.setHeader('Content-Type', 'text/html'); res.render(config.BASE_DIR + '/templates/404.pug', res.locals, function(err, result) { if (err) console.log(err); res.send(result); }); return; } computeUserTable(req.session.user, (result) => { res.locals.courses = result.courses; res.locals.total = result.total; render('totalTable.pug'); }); }