From 9b804005b445d54114a1ddeb3cb6b22a872911d2 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Fri, 27 Mar 2020 10:24:19 +0100 Subject: plugins/base: add redirect param to move/delete/flag endpoints --- plugins/base/routes.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'plugins/base') diff --git a/plugins/base/routes.go b/plugins/base/routes.go index 0782159..1ea611d 100644 --- a/plugins/base/routes.go +++ b/plugins/base/routes.go @@ -696,6 +696,9 @@ func handleMove(ctx *koushin.Context) error { return err } + if path := ctx.QueryParam("next"); path != "" { + return ctx.Redirect(http.StatusFound, path) + } return ctx.Redirect(http.StatusFound, fmt.Sprintf("/mailbox/%v", url.PathEscape(to))) } @@ -744,6 +747,9 @@ func handleDelete(ctx *koushin.Context) error { return err } + if path := ctx.QueryParam("next"); path != "" { + return ctx.Redirect(http.StatusFound, path) + } return ctx.Redirect(http.StatusFound, fmt.Sprintf("/mailbox/%v", url.PathEscape(mboxName))) } @@ -813,7 +819,10 @@ func handleSetFlags(ctx *koushin.Context) error { return err } - if len(uids) != 1 || (op == imap.RemoveFlags && len(flags) == 1 && flags[0] == "\\Seen") { + if path := ctx.QueryParam("next"); path != "" { + return ctx.Redirect(http.StatusFound, path) + } + if len(uids) != 1 || (op == imap.RemoveFlags && len(flags) == 1 && flags[0] == imap.SeenFlag) { // Redirecting to the message view would mark the message as read again return ctx.Redirect(http.StatusFound, fmt.Sprintf("/mailbox/%v", url.PathEscape(mboxName))) } -- cgit v1.2.3