summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/global/www/script/navigation.js23
-rw-r--r--src/global/www/script/session.js1
-rw-r--r--src/login/src/Action/Session.elm4
-rw-r--r--src/login/src/ElmModule/Subscriptions.elm8
-rw-r--r--src/login/src/ElmModule/Update.elm3
-rw-r--r--src/login/src/Struct/Event.elm1
-rw-r--r--src/login/src/Struct/Model.elm3
-rw-r--r--src/login/src/Update/HandleConnected.elm25
-rw-r--r--src/login/www/index.html2
-rw-r--r--src/main-menu/src/ElmModule/Update.elm1
10 files changed, 65 insertions, 6 deletions
diff --git a/src/global/www/script/navigation.js b/src/global/www/script/navigation.js
new file mode 100644
index 0000000..b036e03
--- /dev/null
+++ b/src/global/www/script/navigation.js
@@ -0,0 +1,23 @@
+/******************************************************************************/
+/** Navigation ****************************************************************/
+/******************************************************************************/
+
+/***
+ * This module allows navigation to another page.
+ **/
+
+var tacticians_online = tacticians_online || new Object();
+
+tacticians_online.navigation = new Object();
+
+tacticians_online.navigation.go_to =
+function (url)
+{
+ window.location.href = url;
+}
+
+tacticians_online.navigation.attach_to =
+function (app)
+{
+ app.ports.go_to.subscribe(tacticians_online.navigation.go_to);
+}
diff --git a/src/global/www/script/session.js b/src/global/www/script/session.js
index 771f2c2..8d005b1 100644
--- a/src/global/www/script/session.js
+++ b/src/global/www/script/session.js
@@ -20,6 +20,7 @@ function ()
{
localStorage.setItem("user_id", tacticians_online.session.private.user_id);
localStorage.setItem("token", tacticians_online.session.private.token);
+ tacticians_online.app.ports.connected.send(null);
}
tacticians_online.session.reset =
diff --git a/src/login/src/Action/Session.elm b/src/login/src/Action/Session.elm
index eab1658..1074cd7 100644
--- a/src/login/src/Action/Session.elm
+++ b/src/login/src/Action/Session.elm
@@ -1,4 +1,8 @@
port module Action.Session exposing (..)
+import Struct.Event
+
port store_new_session : (String, String) -> (Cmd msg)
port reset_session : () -> (Cmd msg)
+port connected: (() -> msg) -> (Sub msg)
+port go_to : (String) -> (Cmd msg)
diff --git a/src/login/src/ElmModule/Subscriptions.elm b/src/login/src/ElmModule/Subscriptions.elm
index fe276f4..08ba697 100644
--- a/src/login/src/ElmModule/Subscriptions.elm
+++ b/src/login/src/ElmModule/Subscriptions.elm
@@ -2,16 +2,18 @@ module ElmModule.Subscriptions exposing (..)
-- Elm -------------------------------------------------------------------------
--- Map -------------------------------------------------------------------
+-- Main Menu -------------------------------------------------------------------
+import Action.Session
+
import Struct.Model
import Struct.Event
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
--------------------------------------------------------------------------------
-
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
subscriptions : Struct.Model.Type -> (Sub Struct.Event.Type)
-subscriptions model = Sub.none
+subscriptions model =
+ (Action.Session.connected (always Struct.Event.Connected))
diff --git a/src/login/src/ElmModule/Update.elm b/src/login/src/ElmModule/Update.elm
index babb5b5..66708d8 100644
--- a/src/login/src/ElmModule/Update.elm
+++ b/src/login/src/ElmModule/Update.elm
@@ -6,6 +6,7 @@ module ElmModule.Update exposing (update)
import Struct.Event
import Struct.Model
+import Update.HandleConnected
import Update.HandleServerReply
import Update.SendSignIn
import Update.SendSignUp
@@ -19,7 +20,6 @@ import Update.SelectTab
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-
update : (
Struct.Event.Type ->
Struct.Model.Type ->
@@ -87,3 +87,4 @@ update event model =
Cmd.none
)
+ Struct.Event.Connected -> (Update.HandleConnected.apply_to model)
diff --git a/src/login/src/Struct/Event.elm b/src/login/src/Struct/Event.elm
index 662b768..39af983 100644
--- a/src/login/src/Struct/Event.elm
+++ b/src/login/src/Struct/Event.elm
@@ -26,6 +26,7 @@ type Type =
| SetEmail2 String
| ServerReplied (Result Http.Error (List Struct.ServerReply.Type))
| TabSelected Struct.UI.Tab
+ | Connected
attempted : (Result.Result err val) -> Type
attempted act =
diff --git a/src/login/src/Struct/Model.elm b/src/login/src/Struct/Model.elm
index cb7bf35..88a509e 100644
--- a/src/login/src/Struct/Model.elm
+++ b/src/login/src/Struct/Model.elm
@@ -9,8 +9,9 @@ module Struct.Model exposing
-- Elm -------------------------------------------------------------------------
--- Map -------------------------------------------------------------------
+-- Login -----------------------------------------------------------------------
import Struct.Error
+import Struct.Event
import Struct.Flags
import Struct.HelpRequest
import Struct.UI
diff --git a/src/login/src/Update/HandleConnected.elm b/src/login/src/Update/HandleConnected.elm
new file mode 100644
index 0000000..5d1284d
--- /dev/null
+++ b/src/login/src/Update/HandleConnected.elm
@@ -0,0 +1,25 @@
+module Update.HandleConnected exposing (apply_to)
+-- Elm -------------------------------------------------------------------------
+
+-- Login -----------------------------------------------------------------------
+import Action.Session
+
+import Constants.IO
+
+import Struct.Model
+import Struct.Event
+import Struct.UI
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+apply_to : Struct.Model.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))
+apply_to model =
+ (
+ model,
+ (Action.Session.go_to (Constants.IO.base_url ++"/main-menu/"))
+ )
diff --git a/src/login/www/index.html b/src/login/www/index.html
index 459c550..f3b9b21 100644
--- a/src/login/www/index.html
+++ b/src/login/www/index.html
@@ -9,6 +9,7 @@
<script src="script/main.js"></script>
<script src="../global/script/session.js"></script>
<script src="../global/script/urlparams.js"></script>
+ <script src="../global/script/navigation.js"></script>
<script>
tacticians_online.session.load();
@@ -23,6 +24,7 @@
);
tacticians_online.session.attach_to(tacticians_online.app);
+ tacticians_online.navigation.attach_to(tacticians_online.app);
</script>
</body>
</html>
diff --git a/src/main-menu/src/ElmModule/Update.elm b/src/main-menu/src/ElmModule/Update.elm
index 425d95f..c4724d6 100644
--- a/src/main-menu/src/ElmModule/Update.elm
+++ b/src/main-menu/src/ElmModule/Update.elm
@@ -16,7 +16,6 @@ import Update.SelectTab
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-
update : (
Struct.Event.Type ->
Struct.Model.Type ->