mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-22 03:57:02 +00:00
ui: Add purge button to Mailbox
This commit is contained in:
@@ -116,6 +116,8 @@ type Msg
|
||||
| MessageResult (Result Http.Error Message)
|
||||
| MessageBody Body
|
||||
| OpenedTime Time
|
||||
| Purge
|
||||
| PurgeResult (Result Http.Error ())
|
||||
| SearchInput String
|
||||
| Tick Time
|
||||
| ViewMessage MessageID
|
||||
@@ -213,6 +215,15 @@ update session msg model =
|
||||
_ ->
|
||||
( model, Cmd.none, Session.none )
|
||||
|
||||
Purge ->
|
||||
updatePurge model
|
||||
|
||||
PurgeResult (Ok _) ->
|
||||
( model, Cmd.none, Session.none )
|
||||
|
||||
PurgeResult (Err err) ->
|
||||
( model, Cmd.none, Session.SetFlash (HttpUtil.errorString err) )
|
||||
|
||||
Tick now ->
|
||||
case model.state of
|
||||
ShowingList _ (ShowingMessage { message, markSeenAt }) ->
|
||||
@@ -258,6 +269,26 @@ updateMessageResult model message =
|
||||
)
|
||||
|
||||
|
||||
updatePurge : Model -> ( Model, Cmd Msg, Session.Msg )
|
||||
updatePurge model =
|
||||
let
|
||||
cmd =
|
||||
"/api/v1/mailbox/"
|
||||
++ model.mailboxName
|
||||
|> HttpUtil.delete
|
||||
|> Http.send PurgeResult
|
||||
in
|
||||
case model.state of
|
||||
ShowingList list _ ->
|
||||
( { model | state = ShowingList (MessageList [] Nothing "") NoMessage }
|
||||
, cmd
|
||||
, Session.none
|
||||
)
|
||||
|
||||
_ ->
|
||||
( model, cmd, Session.none )
|
||||
|
||||
|
||||
updateSearchInput : Model -> String -> ( Model, Cmd Msg, Session.Msg )
|
||||
updateSearchInput model searchInput =
|
||||
let
|
||||
@@ -439,6 +470,7 @@ viewMessageList session model =
|
||||
, value model.searchInput
|
||||
]
|
||||
[]
|
||||
, button [ onClick Purge ] [ text "Purge" ]
|
||||
]
|
||||
, case model.state of
|
||||
LoadingList _ ->
|
||||
|
||||
Reference in New Issue
Block a user