Skip to content

Commit

Permalink
Keep attachments on tasklist update (#16750) (#16757)
Browse files Browse the repository at this point in the history
* 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 <[email protected]>
  • Loading branch information
KN4CK3R and wxiaoguang authored Aug 21, 2021
1 parent 5ceff8f commit 0840a50
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 16 deletions.
34 changes: 19 additions & 15 deletions routers/web/repo/issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -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{
Expand Down Expand Up @@ -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
Expand All @@ -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{
Expand Down
3 changes: 2 additions & 1 deletion web_src/js/markup/tasklist.js
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit 0840a50

Please sign in to comment.