@ -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 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 != "" {
if content , ok := ctx . Data [ "content" ] . ( string ) ; ok && content != "" {
// 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