summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Struct/Event.elm2
-rw-r--r--src/Struct/Model.elm15
-rw-r--r--src/Struct/Player.elm87
-rw-r--r--src/Struct/UI.elm62
-rw-r--r--src/View/BattleListing.elm92
-rw-r--r--src/View/Player.elm99
6 files changed, 135 insertions, 222 deletions
diff --git a/src/Struct/Event.elm b/src/Struct/Event.elm
index 419ef51..3bf64d7 100644
--- a/src/Struct/Event.elm
+++ b/src/Struct/Event.elm
@@ -6,7 +6,6 @@ import Http
-- Main Menu -------------------------------------------------------------------
import Struct.Error
import Struct.ServerReply
-import Struct.UI
--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
@@ -15,7 +14,6 @@ type Type =
None
| Failed Struct.Error.Type
| ServerReplied (Result Http.Error (List Struct.ServerReply.Type))
- | TabSelected Struct.UI.Tab
attempted : (Result.Result err val) -> Type
attempted act =
diff --git a/src/Struct/Model.elm b/src/Struct/Model.elm
index 747a39e..8a4f75d 100644
--- a/src/Struct/Model.elm
+++ b/src/Struct/Model.elm
@@ -8,11 +8,10 @@ module Struct.Model exposing
)
-- Elm -------------------------------------------------------------------------
+import Array
--- Shared ----------------------------------------------------------------------
+-- Extension -------------------------------------------------------------------
import Struct.Flags
-
--- Main Menu -------------------------------------------------------------------
import Struct.Error
import Struct.Player
import Struct.UI
@@ -24,10 +23,7 @@ type alias Type =
{
flags: Struct.Flags.Type,
error: (Maybe Struct.Error.Type),
- player_id: String,
- session_token: String,
- player: Struct.Player.Type,
- ui: Struct.UI.Type
+ players: (Array.Array Struct.Player.Type)
}
--------------------------------------------------------------------------------
@@ -42,10 +38,7 @@ new flags =
{
flags = flags,
error = Nothing,
- player_id = flags.user_id,
- session_token = flags.token,
- player = (Struct.Player.none),
- ui = (Struct.UI.default)
+ players = (Array.new)
}
reset : Type -> Type
diff --git a/src/Struct/Player.elm b/src/Struct/Player.elm
index 73fbdb3..7221fb9 100644
--- a/src/Struct/Player.elm
+++ b/src/Struct/Player.elm
@@ -1,39 +1,34 @@
module Struct.Player exposing
(
Type,
+ get_ix,
get_id,
get_username,
- get_maps,
get_campaigns,
get_invasions,
get_events,
- get_roster_id,
- get_inventory_id,
- decoder,
- none
+ set_battles,
+ has_active_battles
)
-- Elm -------------------------------------------------------------------------
import Json.Decode
import Json.Decode.Pipeline
--- Main Menu -------------------------------------------------------------------
+-- Extension -------------------------------------------------------------------
import Struct.BattleSummary
-import Struct.MapSummary
--------------------------------------------------------------------------------
-- TYPES -----------------------------------------------------------------------
--------------------------------------------------------------------------------
type alias Type =
{
+ ix : Int,
id : String,
name : String,
- maps : (List Struct.MapSummary.Type),
campaigns : (List Struct.BattleSummary.Type),
invasions : (List Struct.BattleSummary.Type),
- events : (List Struct.BattleSummary.Type),
- roster_id : String,
- inventory_id : String
+ events : (List Struct.BattleSummary.Type)
}
--------------------------------------------------------------------------------
@@ -43,15 +38,15 @@ type alias Type =
--------------------------------------------------------------------------------
-- EXPORTED --------------------------------------------------------------------
--------------------------------------------------------------------------------
+get_ix : Type -> Int
+get_ix t = t.ix
+
get_id : Type -> String
get_id t = t.id
get_username : Type -> String
get_username t = t.name
-get_maps : Type -> (List Struct.MapSummary.Type)
-get_maps t = t.maps
-
get_campaigns : Type -> (List Struct.BattleSummary.Type)
get_campaigns t = t.campaigns
@@ -61,47 +56,29 @@ get_invasions t = t.invasions
get_events : Type -> (List Struct.BattleSummary.Type)
get_events t = t.events
-get_roster_id : Type -> String
-get_roster_id t = t.roster_id
-
-get_inventory_id : Type -> String
-get_inventory_id t = t.inventory_id
-
-decoder : (Json.Decode.Decoder Type)
-decoder =
- (Json.Decode.Pipeline.decode
+set_battles : (
+ (List Struct.BattleSummary.Type) ->
+ (List Struct.BattleSummary.Type) ->
+ (List Struct.BattleSummary.Type) ->
+ Type ->
Type
- |> (Json.Decode.Pipeline.required "id" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "nme" Json.Decode.string)
- |> (Json.Decode.Pipeline.required
- "maps"
- (Json.Decode.list Struct.MapSummary.decoder)
- )
- |> (Json.Decode.Pipeline.required
- "cmps"
- (Json.Decode.list Struct.BattleSummary.decoder)
- )
- |> (Json.Decode.Pipeline.required
- "invs"
- (Json.Decode.list Struct.BattleSummary.decoder)
- )
- |> (Json.Decode.Pipeline.required
- "evts"
- (Json.Decode.list Struct.BattleSummary.decoder)
- )
- |> (Json.Decode.Pipeline.required "rtid" Json.Decode.string)
- |> (Json.Decode.Pipeline.required "ivid" Json.Decode.string)
)
-
-none : Type
-none =
- {
- id = "",
- name = "Unknown",
- maps = [],
- campaigns = [],
- invasions = [],
- events = [],
- roster_id = "",
- inventory_id = ""
+set_battles campaigns invasions events t =
+ {t |
+ campaigns =
+ (List.filter (Struct.BattleSummary.is_players_turn) campaigns),
+ invasions =
+ (List.filter (Struct.BattleSummary.is_players_turn) invasions),
+ events = (List.filter (Struct.BattleSummary.is_players_turn) events)
}
+
+has_active_battles : Type -> Bool
+has_active_battles t =
+ (
+ (
+ (List.length t.campaigns)
+ + (List.length t.invasions)
+ + (List.length t.events)
+ )
+ > 0
+ )
diff --git a/src/Struct/UI.elm b/src/Struct/UI.elm
deleted file mode 100644
index 6cf853c..0000000
--- a/src/Struct/UI.elm
+++ /dev/null
@@ -1,62 +0,0 @@
-module Struct.UI exposing
- (
- Type,
- Tab(..),
- default,
- -- Tab
- try_getting_displayed_tab,
- set_displayed_tab,
- reset_displayed_tab,
- to_string
- )
-
--- Main Menu -------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- TYPES -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-type Tab =
- CampaignsTab
- | InvasionsTab
- | EventsTab
- | CharactersTab
- | MapsEditorTab
- | AccountTab
-
-type alias Type =
- {
- displayed_tab : (Maybe Tab)
- }
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-default : Type
-default =
- {
- displayed_tab = Nothing
- }
-
--- Tab -------------------------------------------------------------------------
-try_getting_displayed_tab : Type -> (Maybe Tab)
-try_getting_displayed_tab ui = ui.displayed_tab
-
-set_displayed_tab : Tab -> Type -> Type
-set_displayed_tab tab ui = {ui | displayed_tab = (Just tab)}
-
-reset_displayed_tab : Type -> Type
-reset_displayed_tab ui = {ui | displayed_tab = Nothing}
-
-to_string : Tab -> String
-to_string tab =
- case tab of
- CampaignsTab -> "Campaigns"
- InvasionsTab -> "Invasions"
- EventsTab -> "Events"
- CharactersTab -> "Character Editor"
- MapsEditorTab -> "Map Editor"
- AccountTab -> "Account Settings"
diff --git a/src/View/BattleListing.elm b/src/View/BattleListing.elm
deleted file mode 100644
index 9b667ac..0000000
--- a/src/View/BattleListing.elm
+++ /dev/null
@@ -1,92 +0,0 @@
-module View.BattleListing exposing (get_html)
-
--- Elm -------------------------------------------------------------------------
-import Html
-import Html.Attributes
--- import Html.Events
-
--- Map -------------------------------------------------------------------
-import Struct.BattleSummary
-import Struct.Event
-
---------------------------------------------------------------------------------
--- LOCAL -----------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_item_html : Struct.BattleSummary.Type -> (Html.Html Struct.Event.Type)
-get_item_html item =
- (Html.a
- [
- (Html.Attributes.href
- (
- "/battle/?id="
- ++ (Struct.BattleSummary.get_id item)
- )
- ),
- (
- if (Struct.BattleSummary.is_players_turn item)
- then
- (Html.Attributes.class "main-menu-battle-summary-is-active")
- else
- (Html.Attributes.class "main-menu-battle-summary-is-inactive")
- )
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "main-menu-battle-summary-name")
- ]
- [
- (Html.text (Struct.BattleSummary.get_name item))
- ]
- ),
- (Html.div
- [
- (Html.Attributes.class "main-menu-battle-summary-date")
- ]
- [
- (Html.text (Struct.BattleSummary.get_last_edit item))
- ]
- )
- ]
- )
-
---------------------------------------------------------------------------------
--- EXPORTED --------------------------------------------------------------------
---------------------------------------------------------------------------------
-get_html : (
- String ->
- String ->
- (List Struct.BattleSummary.Type) ->
- (Html.Html Struct.Event.Type)
- )
-get_html name class battle_summaries =
- (Html.div
- [
- (Html.Attributes.class class),
- (Html.Attributes.class "main-menu-battle-listing")
- ]
- [
- (Html.div
- [
- (Html.Attributes.class "main-menu-battle-listing-header")
- ]
- [
- (Html.text name)
- ]
- ),
- (Html.div
- [
- (Html.Attributes.class "main-menu-battle-listing-body")
- ]
- (List.map (get_item_html) battle_summaries)
- ),
- (Html.div
- [
- (Html.Attributes.class "main-menu-battle-listing-add-new")
- ]
- [
- (Html.text "New")
- ]
- )
- ]
- )
diff --git a/src/View/Player.elm b/src/View/Player.elm
new file mode 100644
index 0000000..7d100e9
--- /dev/null
+++ b/src/View/Player.elm
@@ -0,0 +1,99 @@
+module View.Player exposing (get_html)
+
+-- Elm -------------------------------------------------------------------------
+import Html
+import Html.Attributes
+-- import Html.Events
+
+-- Extension -------------------------------------------------------------------
+import Struct.BattleSummary
+import Struct.Event
+import Struct.Player
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_item_html : (
+ String ->
+ String ->
+ Struct.BattleSummary.Type ->
+ (Html.Html Struct.Event.Type)
+ )
+get_item_html url_prefix additional_class item =
+ (Html.a
+ [
+ (Html.Attributes.class additional_class),
+ (Html.Attributes.href
+ (
+ url_prefix
+ ++ (Struct.BattleSummary.get_id item)
+ )
+ )
+ ]
+ [
+ (Html.div
+ [
+ (Html.Attributes.class "battle-summary-name")
+ ]
+ [
+ (Html.text (Struct.BattleSummary.get_name item))
+ ]
+ ),
+ (Html.div
+ [
+ (Html.Attributes.class "battle-summary-date")
+ ]
+ [
+ (Html.text (Struct.BattleSummary.get_last_edit item))
+ ]
+ )
+ ]
+ )
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+get_html : Struct.Player.Type -> (Html.Html Struct.Event.Type)
+get_html player =
+ let
+ url_prefix = (Struct.Player.get_url_prefix player)
+ in
+ (Html.div
+ [
+ (Html.Attributes.class "player-summary")
+ ]
+ [
+ (Html.div
+ [
+ (Html.Attributes.class "player-summary-listing-header")
+ ]
+ [
+ (Html.text (Struct.Player.get_username player))
+ ]
+ ),
+ (Html.div
+ [
+ (Html.Attributes.class "player-summary-listing-body")
+ ]
+ (
+ (List.map
+ (get_item_html url_prefix)
+ "campaign-link"
+ (Struct.Player.get_campaigns player)
+ )
+ ++
+ (List.map
+ (get_item_html url_prefix)
+ "invasion-link"
+ (Struct.Player.get_invasions player)
+ )
+ ++
+ (List.map
+ (get_item_html url_prefix)
+ "event-link"
+ (Struct.Player.get_events player)
+ )
+ )
+ )
+ ]
+ )