mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-10-22 13:20:12 +00:00
Externalize error messages
This commit is contained in:
@@ -23,7 +23,6 @@ import Html.Events exposing (onSubmit)
|
||||
import Http
|
||||
import Messages.Comp.OrgManage exposing (Texts)
|
||||
import Styles as S
|
||||
import Util.Http
|
||||
import Util.Maybe
|
||||
|
||||
|
||||
@@ -31,13 +30,20 @@ type alias Model =
|
||||
{ tableModel : Comp.OrgTable.Model
|
||||
, formModel : Comp.OrgForm.Model
|
||||
, viewMode : ViewMode
|
||||
, formError : Maybe String
|
||||
, formError : FormError
|
||||
, loading : Bool
|
||||
, deleteConfirm : Comp.YesNoDimmer.Model
|
||||
, query : String
|
||||
}
|
||||
|
||||
|
||||
type FormError
|
||||
= FormErrorNone
|
||||
| FormErrorHttp Http.Error
|
||||
| FormErrorSubmit String
|
||||
| FormErrorInvalid
|
||||
|
||||
|
||||
type ViewMode
|
||||
= Table
|
||||
| Form
|
||||
@@ -48,7 +54,7 @@ emptyModel =
|
||||
{ tableModel = Comp.OrgTable.emptyModel
|
||||
, formModel = Comp.OrgForm.emptyModel
|
||||
, viewMode = Table
|
||||
, formError = Nothing
|
||||
, formError = FormErrorNone
|
||||
, loading = False
|
||||
, deleteConfirm = Comp.YesNoDimmer.emptyModel
|
||||
, query = ""
|
||||
@@ -83,7 +89,7 @@ update flags msg model =
|
||||
, viewMode = Maybe.map (\_ -> Form) tm.selected |> Maybe.withDefault Table
|
||||
, formError =
|
||||
if Util.Maybe.nonEmpty tm.selected then
|
||||
Nothing
|
||||
FormErrorNone
|
||||
|
||||
else
|
||||
model.formError
|
||||
@@ -136,7 +142,7 @@ update flags msg model =
|
||||
InitNewOrg ->
|
||||
let
|
||||
nm =
|
||||
{ model | viewMode = Form, formError = Nothing }
|
||||
{ model | viewMode = Form, formError = FormErrorNone }
|
||||
|
||||
org =
|
||||
Api.Model.Organization.empty
|
||||
@@ -155,7 +161,7 @@ update flags msg model =
|
||||
( { model | loading = True }, Api.postOrg flags org SubmitResp )
|
||||
|
||||
else
|
||||
( { model | formError = Just "Please correct the errors in the form." }, Cmd.none )
|
||||
( { model | formError = FormErrorInvalid }, Cmd.none )
|
||||
|
||||
SubmitResp (Ok res) ->
|
||||
if res.success then
|
||||
@@ -169,10 +175,10 @@ update flags msg model =
|
||||
( { m3 | loading = False }, Cmd.batch [ c2, c3 ] )
|
||||
|
||||
else
|
||||
( { model | formError = Just res.message, loading = False }, Cmd.none )
|
||||
( { model | formError = FormErrorSubmit res.message, loading = False }, Cmd.none )
|
||||
|
||||
SubmitResp (Err err) ->
|
||||
( { model | formError = Just (Util.Http.errorToString err), loading = False }, Cmd.none )
|
||||
( { model | formError = FormErrorHttp err, loading = False }, Cmd.none )
|
||||
|
||||
RequestDelete ->
|
||||
update flags (YesNoMsg Comp.YesNoDimmer.activate) model
|
||||
@@ -310,12 +316,23 @@ viewForm2 texts settings model =
|
||||
}
|
||||
, div
|
||||
[ classList
|
||||
[ ( "hidden", Util.Maybe.isEmpty model.formError )
|
||||
[ ( "hidden", model.formError == FormErrorNone )
|
||||
]
|
||||
, class S.errorMessage
|
||||
, class "my-2"
|
||||
]
|
||||
[ Maybe.withDefault "" model.formError |> text
|
||||
[ case model.formError of
|
||||
FormErrorNone ->
|
||||
text ""
|
||||
|
||||
FormErrorSubmit m ->
|
||||
text m
|
||||
|
||||
FormErrorHttp err ->
|
||||
text (texts.httpError err)
|
||||
|
||||
FormErrorInvalid ->
|
||||
text texts.correctFormErrors
|
||||
]
|
||||
, Html.map FormMsg
|
||||
(Comp.OrgForm.view2
|
||||
|
Reference in New Issue
Block a user