summaryrefslogtreecommitdiff
path: root/elm3/User/PassSet.elm
diff options
context:
space:
mode:
Diffstat (limited to 'elm3/User/PassSet.elm')
-rw-r--r--elm3/User/PassSet.elm94
1 files changed, 0 insertions, 94 deletions
diff --git a/elm3/User/PassSet.elm b/elm3/User/PassSet.elm
deleted file mode 100644
index b85f715a..00000000
--- a/elm3/User/PassSet.elm
+++ /dev/null
@@ -1,94 +0,0 @@
-module User.PassSet exposing (main)
-
-import Html exposing (..)
-import Html.Attributes exposing (..)
-import Html.Events exposing (..)
-import Json.Encode as JE
-import Browser
-import Browser.Navigation exposing (load)
-import Lib.Api as Api
-import Lib.Gen as Gen
-import Lib.Html exposing (..)
-
-
-main : Program String Model Msg
-main = Browser.element
- { init = \s ->
- ( { url = s
- , pass1 = ""
- , pass2 = ""
- , badPass = False
- , state = Api.Normal
- }
- , Cmd.none)
- , subscriptions = always Sub.none
- , view = view
- , update = update
- }
-
-
-encodeForm : Model -> JE.Value
-encodeForm o = JE.object
- [ ("pass", JE.string o.pass1) ]
-
-
-type alias Model =
- { url : String
- , pass1 : String
- , pass2 : String
- , badPass : Bool
- , state : Api.State
- }
-
-
-type Msg
- = Pass1 String
- | Pass2 String
- | Submit
- | Submitted Api.Response
-
-
-update : Msg -> Model -> (Model, Cmd Msg)
-update msg model =
- case msg of
- Pass1 n -> ({ model | pass1 = n, badPass = False }, Cmd.none)
- Pass2 n -> ({ model | pass2 = n, badPass = False }, Cmd.none)
-
- Submit ->
- if model.pass1 /= model.pass2
- then ({ model | badPass = True }, Cmd.none)
- else ( { model | state = Api.Loading }
- , Api.post model.url (encodeForm model) Submitted)
-
- Submitted Gen.Success -> (model, load "/")
- Submitted e -> ({ model | state = Api.Error e }, Cmd.none)
-
-
-view : Model -> Html Msg
-view model =
- let err s =
- div [ class "card__section card__section--error fs-medium" ]
- [ h5 [] [ text "Error" ]
- , text s
- ]
- in form_ Submit (model.state == Api.Loading)
- [ div [ class "card card--white card--no-separators flex-expand small-card mb-5" ]
- [ div [ class "card__header" ] [ div [ class "card__title" ] [ text "Set password" ]]
- , case model.state of
- Api.Error e -> err <| Api.showResponse e
- _ -> text ""
- , if model.badPass then err "Passwords to not match" else text ""
- , div [ class "card__section fs-medium" ]
- [ div [ class "form-group" ] [ inputText "pass1" model.pass1 Pass1 [placeholder "New password", required True, minlength 4, maxlength 500, type_ "password"] ]
- , div [ class "form-group" ] [ inputText "pass2" model.pass2 Pass2 [placeholder "Repeat", required True, minlength 4, maxlength 500, type_ "password"] ]
- ]
- , div [ class "card__section" ]
- [ div [ class "d-flex jc-end" ]
- [ if model.state == Api.Loading
- then div [ class "spinner spinner--md pull-right" ] []
- else text ""
- , input [ type_ "submit", class "btn", tabindex 10, value "Submit" ] []
- ]
- ]
- ]
- ]