mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-23 10:58:26 +00:00
Externalize error messages
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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 ""
|
||||
]
|
||||
]
|
||||
|
||||
|
Reference in New Issue
Block a user