Externalize error messages

This commit is contained in:
Eike Kettner
2021-04-17 11:14:29 +02:00
parent c9b54e80b7
commit b2cffb22ef
65 changed files with 1518 additions and 683 deletions

View File

@ -1,5 +1,6 @@
module Comp.ItemDetail.Model exposing
( AttachmentRename
, MailSendResult(..)
, Model
, Msg(..)
, NotesField(..)
@ -84,7 +85,7 @@ type alias Model =
, itemMail : Comp.ItemMail.Model
, mailOpen : Bool
, mailSending : Bool
, mailSendResult : Maybe BasicResult
, mailSendResult : MailSendResult
, sentMails : Comp.SentMails.Model
, sentMailsOpen : Bool
, attachMeta : Dict String Comp.AttachmentMeta.Model
@ -128,6 +129,13 @@ type SelectActionMode
| DeleteSelected
type MailSendResult
= MailSendSuccessful
| MailSendHttpError Http.Error
| MailSendFailed String
| MailSendResultInitial
type NotesField
= ViewNotes
| EditNotes Comp.MarkdownInput.Model
@ -181,7 +189,7 @@ emptyModel =
, itemMail = Comp.ItemMail.emptyModel
, mailOpen = False
, mailSending = False
, mailSendResult = Nothing
, mailSendResult = MailSendResultInitial
, sentMails = Comp.SentMails.init
, sentMailsOpen = False
, attachMeta = Dict.empty

View File

@ -24,7 +24,23 @@ import Comp.Dropdown exposing (isDropdownChangeMsg)
import Comp.Dropzone
import Comp.EquipmentForm
import Comp.ItemDetail.FieldTabState as FTabState
import Comp.ItemDetail.Model exposing (AttachmentRename, Model, Msg(..), NotesField(..), SaveNameState(..), SelectActionMode(..), UpdateResult, ViewMode(..), initSelectViewModel, isEditNotes, resultModel, resultModelCmd, resultModelCmdSub)
import Comp.ItemDetail.Model
exposing
( AttachmentRename
, MailSendResult(..)
, Model
, Msg(..)
, NotesField(..)
, SaveNameState(..)
, SelectActionMode(..)
, UpdateResult
, ViewMode(..)
, initSelectViewModel
, isEditNotes
, resultModel
, resultModelCmd
, resultModelCmdSub
)
import Comp.ItemMail
import Comp.KeyInput
import Comp.LinkTarget
@ -48,7 +64,6 @@ import Set exposing (Set)
import Throttle
import Time
import Util.File exposing (makeFileId)
import Util.Http
import Util.List
import Util.Maybe
import Util.String
@ -750,7 +765,7 @@ update key flags inav settings msg model =
( { model
| itemMail = Comp.ItemMail.clear im
, mailOpen = False
, mailSendResult = Nothing
, mailSendResult = MailSendResultInitial
}
, Cmd.map ItemMailMsg ic
)
@ -788,7 +803,7 @@ update key flags inav settings msg model =
model.mailSendResult
else
Nothing
MailSendResultInitial
in
resultModel
{ model
@ -810,7 +825,12 @@ update key flags inav settings msg model =
( { model
| itemMail = mm
, mailSending = False
, mailSendResult = Just br
, mailSendResult =
if br.success then
MailSendSuccessful
else
MailSendFailed br.message
}
, if br.success then
Api.itemDetail flags model.item.id GetItemResp
@ -820,13 +840,9 @@ update key flags inav settings msg model =
)
SendMailResp (Err err) ->
let
errmsg =
Util.Http.errorToString err
in
resultModel
{ model
| mailSendResult = Just (BasicResult False errmsg)
| mailSendResult = MailSendHttpError err
, mailSending = False
}

View File

@ -7,7 +7,8 @@ import Comp.ItemDetail.AddFilesForm
import Comp.ItemDetail.ItemInfoHeader
import Comp.ItemDetail.Model
exposing
( Model
( MailSendResult(..)
, Model
, Msg(..)
, NotesField(..)
, SaveNameState(..)
@ -257,22 +258,24 @@ sendMailForm texts settings model =
, Html.map ItemMailMsg (Comp.ItemMail.view2 texts.itemMail settings model.itemMail)
, div
[ classList
[ ( S.errorMessage
, Maybe.map .success model.mailSendResult
|> Maybe.map not
|> Maybe.withDefault False
)
, ( S.successMessage
, Maybe.map .success model.mailSendResult
|> Maybe.withDefault False
)
, ( "hidden", model.mailSendResult == Nothing )
[ ( S.errorMessage, model.mailSendResult /= MailSendSuccessful )
, ( S.successMessage, model.mailSendResult == MailSendSuccessful )
, ( "hidden", model.mailSendResult == MailSendResultInitial )
]
, class "mt-2"
]
[ Maybe.map .message model.mailSendResult
|> Maybe.withDefault ""
|> text
[ case model.mailSendResult of
MailSendSuccessful ->
text texts.mailSendSuccessful
MailSendHttpError err ->
text (texts.httpError err)
MailSendFailed m ->
text m
MailSendResultInitial ->
text ""
]
]