diff options
author | KN4CK3R | 2021-08-21 21:10:04 +0200 |
---|---|---|
committer | GitHub | 2021-08-21 20:10:04 +0100 |
commit | 0840a508b4e7dbb3bbd7c2cb24efd1bd4d0b739e (patch) | |
tree | 5a492783acec45a82841b5a00ae3b49fcca5703b | |
parent | 5ceff8fda28ae3ad8ae2239e1644e0d2f191e21f (diff) |
Keep attachments on tasklist update (#16750) (#16757)
* Send attachments too.
* Use tasklist flag.
* use action="ignoreAttachments" instead of "tasklist"
* Use boolean parameter.
* when the update request doesn't intend to update attachments (eg: change checkbox state), ignore attachment updates (#16762)
Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
-rw-r--r-- | routers/web/repo/issue.go | 34 | ||||
-rw-r--r-- | web_src/js/markup/tasklist.js | 3 |
2 files changed, 21 insertions, 16 deletions
diff --git a/routers/web/repo/issue.go b/routers/web/repo/issue.go index 9639ea820..3162e0932 100644 --- a/routers/web/repo/issue.go +++ b/routers/web/repo/issue.go @@ -1728,10 +1728,12 @@ func UpdateIssueContent(ctx *context.Context) { return } - files := ctx.QueryStrings("files[]") - if err := updateAttachments(issue, files); err != nil { - ctx.ServerError("UpdateAttachments", err) - return + // when update the request doesn't intend to update attachments (eg: change checkbox state), ignore attachment updates + if !ctx.QueryBool("ignore_attachments") { + if err := updateAttachments(issue, ctx.QueryStrings("files[]")); err != nil { + ctx.ServerError("UpdateAttachments", err) + return + } } content, err := markdown.RenderString(&markup.RenderContext{ @@ -2128,13 +2130,6 @@ func UpdateCommentContent(ctx *context.Context) { return } - if comment.Type == models.CommentTypeComment { - if err := comment.LoadAttachments(); err != nil { - ctx.ServerError("LoadAttachments", err) - return - } - } - if !ctx.IsSigned || (ctx.User.ID != comment.PosterID && !ctx.Repo.CanWriteIssuesOrPulls(comment.Issue.IsPull)) { ctx.Error(http.StatusForbidden) return @@ -2156,10 +2151,19 @@ func UpdateCommentContent(ctx *context.Context) { return } - files := ctx.QueryStrings("files[]") - if err := updateAttachments(comment, files); err != nil { - ctx.ServerError("UpdateAttachments", err) - return + if comment.Type == models.CommentTypeComment { + if err := comment.LoadAttachments(); err != nil { + ctx.ServerError("LoadAttachments", err) + return + } + } + + // when the update request doesn't intend to update attachments (eg: change checkbox state), ignore attachment updates + if !ctx.QueryBool("ignore_attachments") { + if err := updateAttachments(comment, ctx.QueryStrings("files[]")); err != nil { + ctx.ServerError("UpdateAttachments", err) + return + } } content, err := markdown.RenderString(&markup.RenderContext{ diff --git a/web_src/js/markup/tasklist.js b/web_src/js/markup/tasklist.js index 24b29ddb7..ea1a1f824 100644 --- a/web_src/js/markup/tasklist.js +++ b/web_src/js/markup/tasklist.js @@ -46,9 +46,10 @@ export function initMarkupTasklist() { const {updateUrl, context} = editContentZone.dataset; await $.post(updateUrl, { + ignore_attachments: true, _csrf: window.config.csrf, content: newContent, - context, + context }); rawContent.textContent = newContent; |