diff --git a/routers/web/repo/compare.go b/routers/web/repo/compare.go index 8d45f8d67..35f923d56 100644 --- a/routers/web/repo/compare.go +++ b/routers/web/repo/compare.go @@ -30,6 +30,7 @@ import ( "code.gitea.io/gitea/modules/log" "code.gitea.io/gitea/modules/markup" "code.gitea.io/gitea/modules/setting" + api "code.gitea.io/gitea/modules/structs" "code.gitea.io/gitea/modules/upload" "code.gitea.io/gitea/modules/util" "code.gitea.io/gitea/services/gitdiff" @@ -789,16 +790,29 @@ func CompareDiff(ctx *context.Context) { ctx.Flash.Warning(renderErrorOfTemplates(ctx, templateErrs), true) } - // If a template content is set, prepend the "content". In this case that's only - // applicable if you have one commit to compare and that commit has a message. - // In that case the commit message will be prepend to the template body. - if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" { - if content, ok := ctx.Data["content"].(string); ok && content != "" { + if content, ok := ctx.Data["content"].(string); ok && content != "" { + // If a template content is set, prepend the "content". In this case that's only + // applicable if you have one commit to compare and that commit has a message. + // In that case the commit message will be prepend to the template body. + if templateContent, ok := ctx.Data[pullRequestTemplateKey].(string); ok && templateContent != "" { // Re-use the same key as that's priortized over the "content" key. // Add two new lines between the content to ensure there's always at least // one empty line between them. ctx.Data[pullRequestTemplateKey] = content + "\n\n" + templateContent } + + // When using form fields, also add content to field with id "body". + if fields, ok := ctx.Data["Fields"].([]*api.IssueFormField); ok { + for _, field := range fields { + if field.ID == "body" { + if fieldValue, ok := field.Attributes["value"].(string); ok && fieldValue != "" { + field.Attributes["value"] = content + "\n\n" + fieldValue + } else { + field.Attributes["value"] = content + } + } + } + } } ctx.Data["IsAttachmentEnabled"] = setting.Attachment.Enabled