aboutsummaryrefslogtreecommitdiff
path: root/src/client/javascript/main.js
diff options
context:
space:
mode:
authorNoah Loomans <noahloomans@gmail.com>2017-09-13 16:28:53 +0200
committerNoah Loomans <noahloomans@gmail.com>2017-09-13 16:28:53 +0200
commit3fb86482404e11942cd83c3500a297a3991db0e4 (patch)
treec5e7261de72c2b7f871580784525d06d036a6219 /src/client/javascript/main.js
parent5aac32f72eca8c66e879583ce653d07bb3c7370f (diff)
Restructure project
Diffstat (limited to 'src/client/javascript/main.js')
-rw-r--r--src/client/javascript/main.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/client/javascript/main.js b/src/client/javascript/main.js
new file mode 100644
index 0000000..0d125cb
--- /dev/null
+++ b/src/client/javascript/main.js
@@ -0,0 +1,71 @@
+require('./featureDetect').check()
+require('./zoom')
+
+const frontpage = require('./frontpage')
+const search = require('./search')
+const schedule = require('./schedule')
+const weekSelector = require('./weekSelector')
+const favorite = require('./favorite')
+const scrollSnap = require('./scrollSnap')
+const analytics = require('./analytics')
+const url = require('./url')
+
+const state = {}
+
+window.state = state
+
+frontpage.show()
+weekSelector.updateCurrentWeek()
+scrollSnap.startListening()
+
+if (url.hasSelectedUser()) {
+ state.selectedUser = url.getSelectedUser()
+
+ favorite.update(state.selectedUser)
+ url.update(state.selectedUser)
+ analytics.send.search(state.selectedUser)
+
+ schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
+} else if (favorite.get() != null) {
+ state.selectedUser = favorite.get()
+
+ favorite.update(state.selectedUser)
+ url.push(state.selectedUser, false)
+ url.update(state.selectedUser)
+ analytics.send.search(state.selectedUser, true)
+
+ schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
+} else {
+ search.focus()
+}
+
+search.on('search', function (selectedUser) {
+ state.selectedUser = selectedUser
+
+ favorite.update(state.selectedUser)
+ url.push(state.selectedUser)
+ url.update(state.selectedUser)
+ analytics.send.search(state.selectedUser)
+
+ schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
+})
+
+url.on('update', function (selectedUser) {
+ state.selectedUser = selectedUser
+
+ favorite.update(state.selectedUser)
+ url.update(state.selectedUser)
+
+ schedule.viewItem(weekSelector.getSelectedWeek(), state.selectedUser)
+})
+
+weekSelector.on('weekChanged', function (newWeek) {
+ analytics.send.search(state.selectedUser)
+ schedule.viewItem(newWeek, state.selectedUser)
+})
+
+favorite.on('click', function () {
+ favorite.toggle(state.selectedUser)
+})
+
+document.body.style.opacity = 1