diff options
author | Noah Loomans <noahloomans@gmail.com> | 2016-09-04 22:17:14 +0200 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2016-09-04 22:17:14 +0200 |
commit | fd7262bebcd6aff7e3ad229bd9e737816a2b23bc (patch) | |
tree | 6b82b7ee03e6d4c3083aff436cf2a9543af46a2a /public/javascripts/getURLOfUser.js |
Init commit
Diffstat (limited to 'public/javascripts/getURLOfUser.js')
-rw-r--r-- | public/javascripts/getURLOfUser.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/public/javascripts/getURLOfUser.js b/public/javascripts/getURLOfUser.js new file mode 100644 index 0000000..294d7c4 --- /dev/null +++ b/public/javascripts/getURLOfUser.js @@ -0,0 +1,45 @@ +const leftPad = require('left-pad') + +// copied from http://www.meetingpointmco.nl/Roosters-AL/doc/dagroosters/untisscripts.js, +// were using the same code as they do to be sure that we always get the same +// week number. +function getWeek () { + // Create a copy of this date object + var target = new Date() + + // ISO week date weeks start on monday + // so correct the day number + var dayNr = (target.getDay() + 6) % 7 + + // ISO 8601 states that week 1 is the week + // with the first thursday of that year. + // Set the target date to the thursday in the target week + target.setDate(target.getDate() - dayNr + 3) + + // Store the millisecond value of the target date + var firstThursday = target.valueOf() + + // Set the target to the first thursday of the year + // First set the target to january first + target.setMonth(0, 1) + // Not a thursday? Correct the date to the next thursday + if (target.getDay() !== 4) { + target.setMonth(0, 1 + ((4 - target.getDay()) + 7) % 7) + } + + // The weeknumber is the number of weeks between the + // first thursday of the year and the thursday in the target week + return 1 + Math.ceil((firstThursday - target) / 604800000) // 604800000 = 7 * 24 * 3600 * 1000 +} + +function getURLOfUsers (weekOffset, type, id) { + return `http://${window.location.host}/meetingpointProxy/Roosters-AL%2Fdoc%2Fdagroosters%2F` + + `${getWeek() + weekOffset}%2F${type}%2F${type}${leftPad(id, 5, '0')}.htm` +} + +module.exports = getURLOfUsers + +module.exports.CLASS = 'c' +module.exports.TEACHERS = 't' +module.exports.ROOMS = 'r' +module.exports.STUDENTS = 's' |