From 998744084264dcf4fbbd2c52ab76cf392803fb05 Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Fri, 9 Dec 2016 15:14:15 +0100 Subject: switched to non-iframe schedule viewer --- public/javascripts/schedule.js | 45 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 public/javascripts/schedule.js (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js new file mode 100644 index 0000000..4e5cbf4 --- /dev/null +++ b/public/javascripts/schedule.js @@ -0,0 +1,45 @@ +const getURLOfUser = require('./getURLOfUser') + +const self = {} + +self._nodes = { + schedule: document.querySelector('#schedule') +} + +self._parseMeetingpointHTML = function (htmlStr) { + const html = document.createElement('html') + html.innerHTML = htmlStr + const centerNode = html.querySelector('center') + return centerNode +} + +self._handleLoad = function (event) { + const request = event.target + if (request.status < 200 || request.status >= 400) { + self._handleError(event) + return + } + const document = self._parseMeetingpointHTML(request.response) + self._nodes.schedule.appendChild(document) +} + +self._handleError = function (event) { + const request = event.target + console.error(request) +} + +self.viewItem = function (offset, selectedUser) { + const url = getURLOfUser(offset, selectedUser.type, selectedUser.index + 1) + + while (self._nodes.schedule.firstChild) { + self._nodes.schedule.removeChild(self._nodes.schedule.firstChild) + } + + const request = new window.XMLHttpRequest() + request.addEventListener('load', self._handleLoad) + request.addEventListener('error', self._handleError) + request.open('GET', url, true) + request.send() +} + +module.exports = self -- cgit v1.1 From cc60c30509e5b084f2b0c01ba22a6e43a446887f Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Fri, 9 Dec 2016 23:02:52 +0100 Subject: add week selector --- public/javascripts/schedule.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js index 4e5cbf4..10ba520 100644 --- a/public/javascripts/schedule.js +++ b/public/javascripts/schedule.js @@ -1,4 +1,4 @@ -const getURLOfUser = require('./getURLOfUser') +const leftPad = require('left-pad') const self = {} @@ -28,8 +28,15 @@ self._handleError = function (event) { console.error(request) } -self.viewItem = function (offset, selectedUser) { - const url = getURLOfUser(offset, selectedUser.type, selectedUser.index + 1) +self._getURLOfUsers = function (week, type, index) { + const id = index + 1 + return `//${window.location.host}/meetingpointProxy/Roosters-AL%2Fdoc%2Fdagroosters%2F` + + `${(week)}%2F${type}%2F${type}${leftPad(id, 5, '0')}.htm` +} + +self.viewItem = function (week, selectedUser) { + console.log(selectedUser) + const url = self._getURLOfUsers(week, selectedUser.type, selectedUser.index) while (self._nodes.schedule.firstChild) { self._nodes.schedule.removeChild(self._nodes.schedule.firstChild) -- cgit v1.1 From aa3206fb3e828e8ba3ee182e5770cfb4ddc21dfe Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Wed, 14 Dec 2016 11:07:39 +0100 Subject: removed `console.log` --- public/javascripts/schedule.js | 1 - 1 file changed, 1 deletion(-) (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js index 10ba520..e181e00 100644 --- a/public/javascripts/schedule.js +++ b/public/javascripts/schedule.js @@ -35,7 +35,6 @@ self._getURLOfUsers = function (week, type, index) { } self.viewItem = function (week, selectedUser) { - console.log(selectedUser) const url = self._getURLOfUsers(week, selectedUser.type, selectedUser.index) while (self._nodes.schedule.firstChild) { -- cgit v1.1 From e3f1a6a2c3534c3133f412f1b86f7398f3b4f40c Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Wed, 14 Dec 2016 12:19:59 +0100 Subject: add favorite --- public/javascripts/schedule.js | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js index e181e00..e3944f8 100644 --- a/public/javascripts/schedule.js +++ b/public/javascripts/schedule.js @@ -1,4 +1,6 @@ const leftPad = require('left-pad') +const autocomplete = require('./autocomplete') +const search = require('./search') const self = {} @@ -46,6 +48,8 @@ self.viewItem = function (week, selectedUser) { request.addEventListener('error', self._handleError) request.open('GET', url, true) request.send() + + search.updateDom(selectedUser) } module.exports = self -- cgit v1.1 From b6542a78c14b3d2e350b6620272a88094abda1c1 Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Thu, 15 Dec 2016 14:13:43 +0100 Subject: add user frendly error handling --- public/javascripts/schedule.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js index e3944f8..72171c6 100644 --- a/public/javascripts/schedule.js +++ b/public/javascripts/schedule.js @@ -1,5 +1,4 @@ const leftPad = require('left-pad') -const autocomplete = require('./autocomplete') const search = require('./search') const self = {} @@ -23,11 +22,19 @@ self._handleLoad = function (event) { } const document = self._parseMeetingpointHTML(request.response) self._nodes.schedule.appendChild(document) + self._nodes.schedule.classList.remove('error') } self._handleError = function (event) { const request = event.target - console.error(request) + let error + if (request.status === 404) { + error = 'Sorry, er is (nog) geen rooster voor deze week.' + } else { + error = 'Sorry, er is iets mis gegaan tijdens het laden van deze week.' + } + self._nodes.schedule.textContent = error + self._nodes.schedule.classList.add('error') } self._getURLOfUsers = function (week, type, index) { -- cgit v1.1 From 31be7d12b8c9b1a2ad163e65808a28656adfbb45 Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Fri, 16 Dec 2016 13:57:57 +0100 Subject: add ability to scroll week selector away --- public/javascripts/schedule.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js index 72171c6..e93ecf8 100644 --- a/public/javascripts/schedule.js +++ b/public/javascripts/schedule.js @@ -1,7 +1,8 @@ +const EventEmitter = require('events') const leftPad = require('left-pad') const search = require('./search') -const self = {} +const self = new EventEmitter() self._nodes = { schedule: document.querySelector('#schedule') @@ -23,6 +24,7 @@ self._handleLoad = function (event) { const document = self._parseMeetingpointHTML(request.response) self._nodes.schedule.appendChild(document) self._nodes.schedule.classList.remove('error') + self.emit('load') } self._handleError = function (event) { @@ -35,6 +37,7 @@ self._handleError = function (event) { } self._nodes.schedule.textContent = error self._nodes.schedule.classList.add('error') + self.emit('load') } self._getURLOfUsers = function (week, type, index) { -- cgit v1.1 From 7ec11ecfc447c66582e16d4e832cbfc089139e29 Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Wed, 21 Dec 2016 11:55:02 +0100 Subject: fixed ie --- public/javascripts/schedule.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js index e93ecf8..2e6fb81 100644 --- a/public/javascripts/schedule.js +++ b/public/javascripts/schedule.js @@ -42,8 +42,8 @@ self._handleError = function (event) { self._getURLOfUsers = function (week, type, index) { const id = index + 1 - return `//${window.location.host}/meetingpointProxy/Roosters-AL%2Fdoc%2Fdagroosters%2F` + - `${(week)}%2F${type}%2F${type}${leftPad(id, 5, '0')}.htm` + return '//' + window.location.host + '/meetingpointProxy/Roosters-AL%2Fdoc%2Fdagroosters%2F' + + week + '%2F' + type + '%2F' + type + leftPad(id, 5, '0') + '.htm' } self.viewItem = function (week, selectedUser) { -- cgit v1.1 From 3387256ff71d411d14b863f4a55c28f0356cd6d5 Mon Sep 17 00:00:00 2001 From: Noah Loomans Date: Wed, 21 Dec 2016 12:20:23 +0100 Subject: fix bug where multiple schedules are shown if switching too quickly. --- public/javascripts/schedule.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'public/javascripts/schedule.js') diff --git a/public/javascripts/schedule.js b/public/javascripts/schedule.js index 2e6fb81..a080ace 100644 --- a/public/javascripts/schedule.js +++ b/public/javascripts/schedule.js @@ -22,6 +22,7 @@ self._handleLoad = function (event) { return } const document = self._parseMeetingpointHTML(request.response) + self._removeChilds() self._nodes.schedule.appendChild(document) self._nodes.schedule.classList.remove('error') self.emit('load') @@ -35,6 +36,7 @@ self._handleError = function (event) { } else { error = 'Sorry, er is iets mis gegaan tijdens het laden van deze week.' } + self._removeChilds() self._nodes.schedule.textContent = error self._nodes.schedule.classList.add('error') self.emit('load') @@ -46,12 +48,16 @@ self._getURLOfUsers = function (week, type, index) { week + '%2F' + type + '%2F' + type + leftPad(id, 5, '0') + '.htm' } -self.viewItem = function (week, selectedUser) { - const url = self._getURLOfUsers(week, selectedUser.type, selectedUser.index) - +self._removeChilds = function () { while (self._nodes.schedule.firstChild) { self._nodes.schedule.removeChild(self._nodes.schedule.firstChild) } +} + +self.viewItem = function (week, selectedUser) { + const url = self._getURLOfUsers(week, selectedUser.type, selectedUser.index) + + self._removeChilds() const request = new window.XMLHttpRequest() request.addEventListener('load', self._handleLoad) -- cgit v1.1