summaryrefslogtreecommitdiff |
diff options
author | nsensfel <SpamShield0@noot-noot.org> | 2018-11-20 18:56:56 +0100 |
---|---|---|
committer | nsensfel <SpamShield0@noot-noot.org> | 2018-11-20 18:56:56 +0100 |
commit | 00521bebf5c4ba27380b6c2a56c6a5352c53e3f6 (patch) | |
tree | 02bef197dbec291673a39b87d7e2d6e79590c3b7 | |
parent | 98b01752cb93b622efd57b2b8883f78336d6ee21 (diff) |
Can now change character names.
-rw-r--r-- | src/roster-editor/src/ElmModule/Update.elm | 4 | ||||
-rw-r--r-- | src/roster-editor/src/Struct/Event.elm | 2 | ||||
-rw-r--r-- | src/roster-editor/src/Update/SetName.elm | 35 | ||||
-rw-r--r-- | src/roster-editor/src/View/CharacterCard.elm | 41 |
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"), |