aboutsummaryrefslogtreecommitdiff
path: root/plugins/base
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/base')
-rw-r--r--plugins/base/routes.go13
1 files changed, 12 insertions, 1 deletions
diff --git a/plugins/base/routes.go b/plugins/base/routes.go
index f426c96..52d1681 100644
--- a/plugins/base/routes.go
+++ b/plugins/base/routes.go
@@ -366,7 +366,8 @@ func handleLogin(ctx *alps.Context) error {
s, err := ctx.Server.Sessions.Put(username, password)
if err != nil {
if _, ok := err.(alps.AuthError); ok {
- return ctx.Render(http.StatusOK, "login.html", &renderData)
+ renderData.BaseRenderData.GlobalData.Notice = "Failed to login!"
+ return ctx.Render(http.StatusUnauthorized, "login.html", &renderData)
}
return fmt.Errorf("failed to put connection in pool: %v", err)
}
@@ -1023,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")
@@ -1070,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