aboutsummaryrefslogtreecommitdiff
path: root/public/javascripts/url.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/javascripts/url.js')
-rw-r--r--public/javascripts/url.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/public/javascripts/url.js b/public/javascripts/url.js
new file mode 100644
index 0000000..a5877c6
--- /dev/null
+++ b/public/javascripts/url.js
@@ -0,0 +1,38 @@
+/* global USERS */
+
+const EventEmitter = require('events')
+
+const self = new EventEmitter()
+
+self.update = function (selectedItem) {
+ const pageTitle = `Metis Rooster - ${selectedItem.value}`
+ const pageUrl = `/${selectedItem.type}/${selectedItem.value}`
+ window.history.pushState(selectedItem, pageTitle, pageUrl)
+}
+
+self.hasSelectedItem = function () {
+ const pageUrl = window.location.pathname
+ return /^\/s\/|^\/t\/|^\/r\/|^\/c\//.test(pageUrl)
+}
+
+self.getSelectedItem = function () {
+ const pageUrl = window.location.pathname
+ const pageUrlData = pageUrl.split('/')
+ const type = pageUrlData[1]
+ const value = pageUrlData[2]
+
+ const user = USERS.filter(function (user) {
+ return user.type === type &&
+ user.value === value
+ })[0]
+
+ return user
+}
+
+self._handleUpdate = function (event) {
+ self.emit('update', event.state)
+}
+
+window.addEventListener('popstate', self._handleUpdate)
+
+module.exports = self