1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-22 12:07:04 +00:00

ui: Add purge button to Mailbox

This commit is contained in:
James Hillyerd
2018-11-06 18:54:17 -08:00
parent af9c735cd7
commit 9e2f138279

View File

@@ -116,6 +116,8 @@ type Msg
| MessageResult (Result Http.Error Message) | MessageResult (Result Http.Error Message)
| MessageBody Body | MessageBody Body
| OpenedTime Time | OpenedTime Time
| Purge
| PurgeResult (Result Http.Error ())
| SearchInput String | SearchInput String
| Tick Time | Tick Time
| ViewMessage MessageID | ViewMessage MessageID
@@ -213,6 +215,15 @@ update session msg model =
_ -> _ ->
( model, Cmd.none, Session.none ) ( 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 -> Tick now ->
case model.state of case model.state of
ShowingList _ (ShowingMessage { message, markSeenAt }) -> 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 -> String -> ( Model, Cmd Msg, Session.Msg )
updateSearchInput model searchInput = updateSearchInput model searchInput =
let let
@@ -439,6 +470,7 @@ viewMessageList session model =
, value model.searchInput , value model.searchInput
] ]
[] []
, button [ onClick Purge ] [ text "Purge" ]
] ]
, case model.state of , case model.state of
LoadingList _ -> LoadingList _ ->