summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-09-30 21:10:00 +0200
committerNathanael Sensfelder <SpamShield0@MultiAgentSystems.org>2018-09-30 21:10:00 +0200
commit11533a168693bd31ed1b73ccb02e5b5062d53783 (patch)
treeee6369c590388b2c9d67f469dc1b0b46986c00a1
parent08baf335929724e18addfc553f42fe8a3b274a42 (diff)
downloadtacticians-extension-11533a168693bd31ed1b73ccb02e5b5062d53783.zip
tacticians-extension-11533a168693bd31ed1b73ccb02e5b5062d53783.tar.bz2
...
-rw-r--r--src/popup/src/ElmModule/Init.elm24
-rw-r--r--src/popup/src/Main.elm4
-rw-r--r--src/popup/src/Struct/Model.elm28
-rw-r--r--src/popup/src/Struct/ProgramInput.elm46
-rw-r--r--src/popup/src/Update/AddPlayer.elm1
-rw-r--r--src/popup/src/Update/RefreshBattles.elm1
-rw-r--r--src/popup/src/Update/StoreParams.elm13
-rw-r--r--src/shared/Struct/Flags.elm8
-rw-r--r--www/script/battles.js6
-rw-r--r--www/script/init_background.js2
-rw-r--r--www/script/init_popup.js11
-rw-r--r--www/script/params.js8
12 files changed, 101 insertions, 51 deletions
diff --git a/src/popup/src/ElmModule/Init.elm b/src/popup/src/ElmModule/Init.elm
index 65d31b7..183483f 100644
--- a/src/popup/src/ElmModule/Init.elm
+++ b/src/popup/src/ElmModule/Init.elm
@@ -1,14 +1,15 @@
module ElmModule.Init exposing (init)
-- Elm -------------------------------------------------------------------------
-import Delay
-
-import Time
-- Extension -------------------------------------------------------------------
import Struct.Event
-import Struct.Flags
import Struct.Model
+import Struct.ProgramInput
+
+--------------------------------------------------------------------------------
+-- TYPES -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
@@ -17,13 +18,12 @@ import Struct.Model
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-init : Struct.Flags.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))
-init flags =
+init : Struct.ProgramInput.Type -> (Struct.Model.Type, (Cmd Struct.Event.Type))
+init inputs =
(
- (Struct.Model.new flags),
- (Delay.after
- (toFloat (Struct.Flags.get_frequency flags))
- (Time.minute)
- Struct.Event.ShouldRefresh
- )
+ (Struct.Model.new
+ (Struct.ProgramInput.get_flags inputs)
+ (Struct.ProgramInput.get_players inputs)
+ ),
+ Cmd.none
)
diff --git a/src/popup/src/Main.elm b/src/popup/src/Main.elm
index 8140041..e72159d 100644
--- a/src/popup/src/Main.elm
+++ b/src/popup/src/Main.elm
@@ -4,14 +4,14 @@ import Html
-- Map -------------------------------------------------------------------
import Struct.Model
import Struct.Event
-import Struct.Flags
+import Struct.ProgramInput
import ElmModule.Init
import ElmModule.Subscriptions
import ElmModule.View
import ElmModule.Update
-main : (Program Struct.Flags.Type Struct.Model.Type Struct.Event.Type)
+main : (Program Struct.ProgramInput.Type Struct.Model.Type Struct.Event.Type)
main =
(Html.programWithFlags
{
diff --git a/src/popup/src/Struct/Model.elm b/src/popup/src/Struct/Model.elm
index 6742e96..c57c286 100644
--- a/src/popup/src/Struct/Model.elm
+++ b/src/popup/src/Struct/Model.elm
@@ -22,9 +22,7 @@ type alias Type =
{
flags: Struct.Flags.Type,
error: (Maybe Struct.Error.Type),
- players: (Array.Array Struct.Player.Type),
- query_index: Int,
- notify: Bool
+ players: (Array.Array Struct.Player.Type)
}
--------------------------------------------------------------------------------
@@ -34,33 +32,19 @@ type alias Type =
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
-new : Struct.Flags.Type -> Type
-new flags =
+new : Struct.Flags.Type -> (List Struct.Player.Type) -> Type
+new flags players =
{
flags = flags,
error = Nothing,
- players =
- (Array.push
- (Struct.Player.default)
- (Array.fromList (Struct.Flags.get_players flags))
- ),
- query_index = -1,
- notify = False
+ players = (Array.fromList players)
}
reset : Type -> Type
-reset model =
- {model |
- error = Nothing,
- notify = False,
- query_index = -1
- }
+reset model = {model | error = Nothing}
invalidate : Struct.Error.Type -> Type -> Type
-invalidate err model =
- {model |
- error = (Just err)
- }
+invalidate err model = {model | error = (Just err)}
clear_error : Type -> Type
clear_error model = {model | error = Nothing}
diff --git a/src/popup/src/Struct/ProgramInput.elm b/src/popup/src/Struct/ProgramInput.elm
new file mode 100644
index 0000000..029465e
--- /dev/null
+++ b/src/popup/src/Struct/ProgramInput.elm
@@ -0,0 +1,46 @@
+module Struct.ProgramInput exposing
+ (
+ Type,
+ get_flags,
+ get_players
+ )
+
+-- Elm -------------------------------------------------------------------------
+import Json.Decode
+
+-- Extension -------------------------------------------------------------------
+import Struct.Flags
+import Struct.Player
+
+--------------------------------------------------------------------------------
+-- TYPES -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+type alias Type =
+ {
+ params: String,
+ players: String
+ }
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_players : Type -> (List Struct.Player.Type)
+get_players inputs =
+ case
+ (Json.Decode.decodeString
+ (Json.Decode.list (Struct.Player.decoder))
+ inputs.players
+ )
+ of
+ (Ok players) -> players
+ (Err _) -> []
+
+get_flags : Type -> Struct.Flags.Type
+get_flags inputs =
+ case (Json.Decode.decodeString (Struct.Flags.decoder) inputs.params) of
+ (Ok flags) -> flags
+ (Err _) -> (Struct.Flags.default)
diff --git a/src/popup/src/Update/AddPlayer.elm b/src/popup/src/Update/AddPlayer.elm
index ed9da4a..3d7c777 100644
--- a/src/popup/src/Update/AddPlayer.elm
+++ b/src/popup/src/Update/AddPlayer.elm
@@ -5,7 +5,6 @@ import Array
-- Extension -------------------------------------------------------------------
import Struct.Event
-import Struct.Flags
import Struct.Model
import Struct.Player
diff --git a/src/popup/src/Update/RefreshBattles.elm b/src/popup/src/Update/RefreshBattles.elm
index e82fb08..cb7e50a 100644
--- a/src/popup/src/Update/RefreshBattles.elm
+++ b/src/popup/src/Update/RefreshBattles.elm
@@ -5,7 +5,6 @@ import Array
-- Extension -------------------------------------------------------------------
import Struct.Event
-import Struct.Flags
import Struct.Model
--------------------------------------------------------------------------------
diff --git a/src/popup/src/Update/StoreParams.elm b/src/popup/src/Update/StoreParams.elm
index 3472c13..cad07e6 100644
--- a/src/popup/src/Update/StoreParams.elm
+++ b/src/popup/src/Update/StoreParams.elm
@@ -11,7 +11,6 @@ import Action.Ports
import Struct.Event
import Struct.Flags
import Struct.Model
-import Struct.Player
--------------------------------------------------------------------------------
-- LOCAL -----------------------------------------------------------------------
@@ -25,12 +24,12 @@ apply_to model =
(
model,
(Action.Ports.set_params
- (
- (Struct.Flags.get_frequency model.flags),
- (Json.Encode.encode
- 0
- (Json.Encode.list
- (List.map (Struct.Player.encode) (Array.toList model.players))
+ (Json.Encode.encode
+ 0
+ (Struct.Flags.encode
+ (Struct.Flags.set_players
+ (Array.toList model.players)
+ model.flags
)
)
)
diff --git a/src/shared/Struct/Flags.elm b/src/shared/Struct/Flags.elm
index 0347001..e7cea2a 100644
--- a/src/shared/Struct/Flags.elm
+++ b/src/shared/Struct/Flags.elm
@@ -3,6 +3,8 @@ module Struct.Flags exposing
Type,
get_frequency,
get_players,
+ set_frequency,
+ set_players,
default,
decoder,
encode
@@ -37,6 +39,12 @@ get_frequency flags = flags.frequency
get_players : Type -> (List Struct.Player.Type)
get_players flags = flags.players
+set_frequency : Int -> Type -> Type
+set_frequency val flags = {flags | frequency = val}
+
+set_players : (List Struct.Player.Type) -> Type -> Type
+set_players val flags = {flags | players = val}
+
default : Type
default =
{
diff --git a/www/script/battles.js b/www/script/battles.js
index a5b5864..0040795 100644
--- a/www/script/battles.js
+++ b/www/script/battles.js
@@ -17,6 +17,12 @@ function (encoded_battles)
localStorage.setItem("battles", encoded_battles);
}
+tacticians_online.battles.get_value =
+function ()
+{
+ return localStorage.getItem("battles");
+}
+
tacticians_online.battles.attach_to =
function (app)
{
diff --git a/www/script/init_background.js b/www/script/init_background.js
index 51cdedf..399ec21 100644
--- a/www/script/init_background.js
+++ b/www/script/init_background.js
@@ -1,5 +1,3 @@
-tacticians_online.params.load();
-
tacticians_online.app = Elm.Main.fullscreen();
tacticians_online.params.attach_to(tacticians_online.app);
diff --git a/www/script/init_popup.js b/www/script/init_popup.js
index 3853867..51e8c3d 100644
--- a/www/script/init_popup.js
+++ b/www/script/init_popup.js
@@ -1,6 +1,11 @@
-tacticians_online.params.load();
-
-tacticians_online.app = Elm.Main.fullscreen();
+tacticians_online.app =
+ Elm.Main.fullscreen
+ (
+ {
+ params: tacticians_online.params.get_value(),
+ players: tacticians_online.battles.get_value()
+ }
+ );
tacticians_online.params.attach_to(tacticians_online.app);
tacticians_online.battles.attach_to(tacticians_online.app);
diff --git a/www/script/params.js b/www/script/params.js
index 243ca34..729cd56 100644
--- a/www/script/params.js
+++ b/www/script/params.js
@@ -8,7 +8,7 @@ tacticians_online.params = new Object();
tacticians_online.params.get =
function ()
{
- tacticians_online.app.battles_in.send(localStorage.getItem("params"));
+ tacticians_online.app.params_in.send(localStorage.getItem("params"));
}
tacticians_online.params.set =
@@ -17,6 +17,12 @@ function (encoded_params)
localStorage.setItem("params", encoded_params);
}
+tacticians_online.params.get_value =
+function ()
+{
+ return localStorage.getItem("params");
+}
+
tacticians_online.params.attach_to =
function (app)
{