summaryrefslogtreecommitdiff
path: root/elm3/User/Login.elm
diff options
context:
space:
mode:
Diffstat (limited to 'elm3/User/Login.elm')
-rw-r--r--elm3/User/Login.elm86
1 files changed, 0 insertions, 86 deletions
diff --git a/elm3/User/Login.elm b/elm3/User/Login.elm
deleted file mode 100644
index 09aa0aa7..00000000
--- a/elm3/User/Login.elm
+++ /dev/null
@@ -1,86 +0,0 @@
-module User.Login 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 () Model Msg
-main = Browser.element
- { init = always (Model "" "" Api.Normal, Cmd.none)
- , subscriptions = always Sub.none
- , view = view
- , update = update
- }
-
-
-encodeForm : Model -> JE.Value
-encodeForm o = JE.object
- [ ("username", JE.string o.username)
- , ("password", JE.string o.password) ]
-
-
-type alias Model =
- { username : String
- , password : String
- , state : Api.State
- }
-
-
-type Msg
- = Username String
- | Password String
- | Submit
- | Submitted Api.Response
-
-
-update : Msg -> Model -> (Model, Cmd Msg)
-update msg model =
- case msg of
- Username n -> ({ model | username = n }, Cmd.none)
- Password n -> ({ model | password = n }, Cmd.none)
-
- Submit -> ( { model | state = Api.Loading }
- , Api.post "/u/login" (encodeForm model) Submitted
- )
-
- Submitted Gen.Success -> (model, load "/")
- Submitted e -> ({ model | state = Api.Error e }, Cmd.none)
-
-
-view : Model -> Html Msg
-view model = 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 "Log in" ]]
- , case model.state of
- Api.Error e ->
- div [ class "card__section card__section--error fs-medium" ]
- [ h5 [] [ text "Error" ]
- , ul []
- [ li [] [ text <| Api.showResponse e ]
- , li [] [ text "If you have not used this login form since October 2014, your account has likely been disabled. You can reset your password to regain access." ]
- ]
- ]
- _ -> text ""
- , div [ class "card__section fs-medium" ]
- [ div [ class "form-group" ] [ inputText "username" model.username Username [placeholder "Username", required True, pattern "[a-z0-9-]{2,15}"] ]
- , div [ class "form-group" ] [ inputText "password" model.password Password [placeholder "Password", required True, minlength 4, maxlength 500, type_ "password"] ]
- , div [ class "d-flex jc-between" ] [ a [ href "/u/newpass" ] [ text "Forgot your password?" ] ]
- ]
- , div [ class "card__section" ]
- [ div [ class "d-flex jc-between" ]
- [ a [ class "btn btn--subtle", href "/u/register" ] [ text "Create an account" ]
- , if model.state == Api.Loading
- then div [ class "spinner spinner--md pull-right" ] []
- else text ""
- , input [ type_ "submit", class "btn", tabindex 10, value "Log in" ] []
- ]
- ]
- ]
- ]