summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornsensfel <SpamShield0@noot-noot.org>2018-11-20 18:56:56 +0100
committernsensfel <SpamShield0@noot-noot.org>2018-11-20 18:56:56 +0100
commit00521bebf5c4ba27380b6c2a56c6a5352c53e3f6 (patch)
tree02bef197dbec291673a39b87d7e2d6e79590c3b7
parent98b01752cb93b622efd57b2b8883f78336d6ee21 (diff)
Can now change character names.
-rw-r--r--src/roster-editor/src/ElmModule/Update.elm4
-rw-r--r--src/roster-editor/src/Struct/Event.elm2
-rw-r--r--src/roster-editor/src/Update/SetName.elm35
-rw-r--r--src/roster-editor/src/View/CharacterCard.elm41
4 files changed, 69 insertions, 13 deletions
diff --git a/src/roster-editor/src/ElmModule/Update.elm b/src/roster-editor/src/ElmModule/Update.elm
index 8d46fc6..192e063 100644
--- a/src/roster-editor/src/ElmModule/Update.elm
+++ b/src/roster-editor/src/ElmModule/Update.elm
@@ -13,6 +13,7 @@ import Update.SelectCharacter
import Update.SelectTab
import Update.SendRoster
import Update.SetArmor
+import Update.SetName
import Update.SetGlyph
import Update.SetGlyphBoard
import Update.SetPortrait
@@ -63,6 +64,9 @@ update event model =
Struct.Event.SaveRequest ->
(Update.SendRoster.apply_to (Struct.Model.save_character new_model))
+ (Struct.Event.SetCharacterName name) ->
+ (Update.SetName.apply_to new_model name)
+
(Struct.Event.ClickedOnWeapon is_main) ->
(Update.SelectTab.apply_to
{model |
diff --git a/src/roster-editor/src/Struct/Event.elm b/src/roster-editor/src/Struct/Event.elm
index 3ac3715..146e264 100644
--- a/src/roster-editor/src/Struct/Event.elm
+++ b/src/roster-editor/src/Struct/Event.elm
@@ -29,6 +29,8 @@ type Type =
| ClickedOnGlyph Int
| SaveRequest
+ | SetCharacterName String
+
| SelectedArmor Struct.Armor.Ref
| SelectedGlyph Struct.Glyph.Ref
| SelectedGlyphBoard Struct.GlyphBoard.Ref
diff --git a/src/roster-editor/src/Update/SetName.elm b/src/roster-editor/src/Update/SetName.elm
new file mode 100644
index 0000000..5879d27
--- /dev/null
+++ b/src/roster-editor/src/Update/SetName.elm
@@ -0,0 +1,35 @@
+module Update.SetName exposing (apply_to)
+
+-- Elm -------------------------------------------------------------------------
+
+-- Roster Editor ---------------------------------------------------------------
+import Struct.Character
+import Struct.Event
+import Struct.Model
+
+--------------------------------------------------------------------------------
+-- LOCAL -----------------------------------------------------------------------
+--------------------------------------------------------------------------------
+
+--------------------------------------------------------------------------------
+-- EXPORTED --------------------------------------------------------------------
+--------------------------------------------------------------------------------
+apply_to : (
+ Struct.Model.Type ->
+ String ->
+ (Struct.Model.Type, (Cmd Struct.Event.Type))
+ )
+apply_to model name =
+ (
+ (
+ case model.edited_char of
+ (Just char) ->
+ {model |
+ edited_char =
+ (Just (Struct.Character.set_name name char))
+ }
+
+ _ -> model
+ ),
+ Cmd.none
+ )
diff --git a/src/roster-editor/src/View/CharacterCard.elm b/src/roster-editor/src/View/CharacterCard.elm
index 7430165..877fe8d 100644
--- a/src/roster-editor/src/View/CharacterCard.elm
+++ b/src/roster-editor/src/View/CharacterCard.elm
@@ -30,19 +30,34 @@ import View.Gauge
--------------------------------------------------------------------------------
get_name : (
Struct.Character.Type ->
+ Bool ->
(Html.Html Struct.Event.Type)
)
-get_name char =
- (Html.div
- [
- (Html.Attributes.class "info-card-name"),
- (Html.Attributes.class "info-card-text-field"),
- (Html.Attributes.class "character-card-name")
- ]
- [
- (Html.text (Struct.Character.get_name char))
- ]
- )
+get_name char can_edit =
+ if can_edit
+ then
+ (Html.input
+ [
+ (Html.Attributes.class "info-card-name"),
+ (Html.Attributes.class "info-card-text-field"),
+ (Html.Attributes.class "character-card-name"),
+ (Html.Events.onInput Struct.Event.SetCharacterName),
+ (Html.Attributes.value (Struct.Character.get_name char))
+ ]
+ [
+ ]
+ )
+ else
+ (Html.div
+ [
+ (Html.Attributes.class "info-card-name"),
+ (Html.Attributes.class "info-card-text-field"),
+ (Html.Attributes.class "character-card-name")
+ ]
+ [
+ (Html.text (Struct.Character.get_name char))
+ ]
+ )
get_health_bar : (
Struct.Character.Type ->
@@ -376,7 +391,7 @@ get_minimal_html char =
)
]
[
- (get_name char),
+ (get_name char False),
(Html.div
[
(Html.Attributes.class "info-card-top"),
@@ -416,7 +431,7 @@ get_full_html char =
(Html.Attributes.class "character-card")
]
[
- (get_name char),
+ (get_name char True),
(Html.div
[
(Html.Attributes.class "info-card-top"),