From 7cb145748a4ef9a74a95cf0eaeace354950bfd32 Mon Sep 17 00:00:00 2001 From: Alex McGrath Date: Sat, 7 May 2022 09:17:12 +0100 Subject: [PATCH] gracefully fail when no messages are selected for deletion or moving --- plugins/base/routes.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/plugins/base/routes.go b/plugins/base/routes.go index 255faa5..52d1681 100644 --- a/plugins/base/routes.go +++ b/plugins/base/routes.go @@ -1024,6 +1024,11 @@ func handleMove(ctx *alps.Context) error { return echo.NewHTTPError(http.StatusBadRequest, err) } + if len(uids) == 0 { + ctx.Session.PutNotice("No messages selected.") + return ctx.Redirect(http.StatusFound, fmt.Sprintf("/mailbox/%v", url.PathEscape(mboxName))) + } + to := formOrQueryParam(ctx, "to") if to == "" { return echo.NewHTTPError(http.StatusBadRequest, "missing 'to' form parameter") @@ -1071,6 +1076,11 @@ func handleDelete(ctx *alps.Context) error { return echo.NewHTTPError(http.StatusBadRequest, err) } + if len(uids) == 0 { + ctx.Session.PutNotice("No messages selected.") + return ctx.Redirect(http.StatusFound, fmt.Sprintf("/mailbox/%v", url.PathEscape(mboxName))) + } + err = ctx.Session.DoIMAP(func(c *imapclient.Client) error { if err := ensureMailboxSelected(c, mboxName); err != nil { return err