diff options
author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-09-30 21:10:00 +0200 |
---|---|---|
committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2018-09-30 21:10:00 +0200 |
commit | 11533a168693bd31ed1b73ccb02e5b5062d53783 (patch) | |
tree | ee6369c590388b2c9d67f469dc1b0b46986c00a1 | |
parent | 08baf335929724e18addfc553f42fe8a3b274a42 (diff) | |
download | tacticians-extension-11533a168693bd31ed1b73ccb02e5b5062d53783.zip tacticians-extension-11533a168693bd31ed1b73ccb02e5b5062d53783.tar.bz2 |
...
-rw-r--r-- | src/popup/src/ElmModule/Init.elm | 24 | ||||
-rw-r--r-- | src/popup/src/Main.elm | 4 | ||||
-rw-r--r-- | src/popup/src/Struct/Model.elm | 28 | ||||
-rw-r--r-- | src/popup/src/Struct/ProgramInput.elm | 46 | ||||
-rw-r--r-- | src/popup/src/Update/AddPlayer.elm | 1 | ||||
-rw-r--r-- | src/popup/src/Update/RefreshBattles.elm | 1 | ||||
-rw-r--r-- | src/popup/src/Update/StoreParams.elm | 13 | ||||
-rw-r--r-- | src/shared/Struct/Flags.elm | 8 | ||||
-rw-r--r-- | www/script/battles.js | 6 | ||||
-rw-r--r-- | www/script/init_background.js | 2 | ||||
-rw-r--r-- | www/script/init_popup.js | 11 | ||||
-rw-r--r-- | www/script/params.js | 8 |
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) { |