| summaryrefslogtreecommitdiff | 
diff options
| -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"), | 


