summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/global/www')
-rw-r--r--src/global/www/script/session.js88
-rw-r--r--src/global/www/script/urlparams.js53
2 files changed, 141 insertions, 0 deletions
diff --git a/src/global/www/script/session.js b/src/global/www/script/session.js
new file mode 100644
index 0000000..c712999
--- /dev/null
+++ b/src/global/www/script/session.js
@@ -0,0 +1,88 @@
+/******************************************************************************/
+/** Session Management ********************************************************/
+/******************************************************************************/
+
+/***
+ * This module uses local storage to keep users logged in across pages, and
+ * through further visits.
+ **/
+
+var tacticians_online = tacticians_online || new Object();
+
+tacticians_online.session = new Object();
+
+tacticians_online.session.private = new Object();
+tacticians_online.session.private.user_id = "";
+tacticians_online.session.private.token = "";
+
+tacticians_online.session.store =
+function ()
+{
+ localStorage.setItem("user_id", tacticians_online.session.private.user_id);
+ localStorage.setItem("token", tacticians_online.session.private.token);
+}
+
+tacticians_online.session.reset =
+function ()
+{
+ localStorage.removeItem("user_id");
+ localStorage.removeItem("token");
+}
+
+tacticians_online.session.load =
+function ()
+{
+ tacticians_online.session.private.user_id = localStorage.getItem("user_id");
+ tacticians_online.session.private.token = localStorage.getItem("token");
+
+ if (tacticians_online.session.private.user_id == null)
+ {
+ tacticians_online.session.private.user_id = "";
+ }
+
+ if (tacticians_online.session.private.token == null)
+ {
+ tacticians_online.session.private.token = "";
+ }
+}
+
+tacticians_online.session.get_user_id =
+function ()
+{
+ return tacticians_online.session.private.user_id;
+}
+
+tacticians_online.session.get_token =
+function ()
+{
+ return tacticians_online.session.private.token;
+}
+
+tacticians_online.session.set_user_id =
+function (user_id)
+{
+ tacticians_online.session.private.user_id = user_id;
+}
+
+tacticians_online.session.set_token =
+function (token)
+{
+ tacticians_online.session.private.token = token;
+}
+
+tacticians_online.session.store_new_session =
+function (user_id, token)
+{
+ tacticians_online.session.set_user_id(user_id);
+ tacticians_online.session.set_token(token);
+ tacticians_online.session.store();
+}
+
+tacticians_online.session.attach_to =
+function (app)
+{
+ app.ports.store_new_session.subscribe =
+ tacticians_online.session.store_new_session;
+
+ app.ports.reset_session.subscribe = tacticians_online.session.reset;
+}
diff --git a/src/global/www/script/urlparams.js b/src/global/www/script/urlparams.js
new file mode 100644
index 0000000..60e6af4
--- /dev/null
+++ b/src/global/www/script/urlparams.js
@@ -0,0 +1,53 @@
+/******************************************************************************/
+/** URL Parameters ************************************************************/
+/******************************************************************************/
+
+/***
+ * This module uses parses the current page's URL and converts it to a format
+ * that can be used by Elm.
+ **/
+
+var tacticians_online = tacticians_online || new Object();
+
+tacticians_online.urlparams = new Object();
+
+tacticians_online.urlparams.private = new Object();
+
+tacticians_online.urlparams.private.get_clean_parameters_string =
+function ()
+{
+ var all_parameters_string = window.location.search;
+
+ if (all_parameters_string == "")
+ {
+ return "";
+ }
+
+ if (all_parameters_string[0] == "?")
+ {
+ return all_parameters_string.slice(1);
+ }
+
+ return all_parameters_string;
+}
+
+tacticians_online.urlparams.get_parameters =
+function ()
+{
+ var all_parameters_string =
+ tacticians_online.urlparams.private.get_clean_parameters_string();
+
+ var all_parameters_array = all_parameters_string.split('&');
+
+ var result = [];
+
+ all_parameters_array.forEach
+ (
+ function (param)
+ {
+ result.push(param.split('='));
+ }
+ );
+
+ return result;
+}