From c6f1fb1c6dcaaeccd203ae22005902795187415a Mon Sep 17 00:00:00 2001 From: HesterG Date: Thu, 29 Jun 2023 12:16:04 +0800 Subject: [PATCH] Use fetch form action for lock/unlock/pin/unpin on sidebar (#25380) Before: Screen Shot 2023-06-20 at 11 59 11 Might trigger many posts when keep clicking the buttons above. Screen Shot 2023-06-20 at 11 52 28 Screen Shot 2023-06-20 at 11 52 37 After (PR sidebar, Same for issue): https://github.com/go-gitea/gitea/assets/17645053/9df3ad1f-e29c-439b-8bde-e6b917d63cc6 For delete, it is using `base/modal_actions_confirm` subtemplate, and we might need another general solution for this (maybe add another attribute to the subtemplate or something) --------- Co-authored-by: silverwind Co-authored-by: Giteabot Co-authored-by: wxiaoguang --- routers/web/repo/issue_lock.go | 13 +++++-------- routers/web/repo/issue_pin.go | 2 +- templates/repo/issue/view_content/sidebar.tmpl | 4 ++-- web_src/css/modules/animations.css | 15 +++++++++++---- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/routers/web/repo/issue_lock.go b/routers/web/repo/issue_lock.go index 08b76e555f..93f5a588d9 100644 --- a/routers/web/repo/issue_lock.go +++ b/routers/web/repo/issue_lock.go @@ -20,14 +20,12 @@ func LockIssue(ctx *context.Context) { } if issue.IsLocked { - ctx.Flash.Error(ctx.Tr("repo.issues.lock_duplicate")) - ctx.Redirect(issue.Link()) + ctx.JSONError(ctx.Tr("repo.issues.lock_duplicate")) return } if !form.HasValidReason() { - ctx.Flash.Error(ctx.Tr("repo.issues.lock.unknown_reason")) - ctx.Redirect(issue.Link()) + ctx.JSONError(ctx.Tr("repo.issues.lock.unknown_reason")) return } @@ -40,7 +38,7 @@ func LockIssue(ctx *context.Context) { return } - ctx.Redirect(issue.Link()) + ctx.JSONRedirect(issue.Link()) } // UnlockIssue unlocks a previously locked issue. @@ -51,8 +49,7 @@ func UnlockIssue(ctx *context.Context) { } if !issue.IsLocked { - ctx.Flash.Error(ctx.Tr("repo.issues.unlock_error")) - ctx.Redirect(issue.Link()) + ctx.JSONError(ctx.Tr("repo.issues.unlock_error")) return } @@ -64,5 +61,5 @@ func UnlockIssue(ctx *context.Context) { return } - ctx.Redirect(issue.Link()) + ctx.JSONRedirect(issue.Link()) } diff --git a/routers/web/repo/issue_pin.go b/routers/web/repo/issue_pin.go index 6586372fc5..7c1a306e6c 100644 --- a/routers/web/repo/issue_pin.go +++ b/routers/web/repo/issue_pin.go @@ -31,7 +31,7 @@ func IssuePinOrUnpin(ctx *context.Context) { return } - ctx.Redirect(issue.Link()) + ctx.JSONRedirect(issue.Link()) } // IssueUnpin unpins a Issue diff --git a/templates/repo/issue/view_content/sidebar.tmpl b/templates/repo/issue/view_content/sidebar.tmpl index 0bc1684489..0e36e15e5c 100644 --- a/templates/repo/issue/view_content/sidebar.tmpl +++ b/templates/repo/issue/view_content/sidebar.tmpl @@ -556,7 +556,7 @@
{{if or .PinEnabled .Issue.IsPinned}} -
+ {{$.CsrfTokenHtml}}