Fix commit expand button to not go to commit link (#8745)
* Fix commit expand button to not go to commit link * Fix message rendering to have correct HTML in result * Fix check for empty commit message * Code optimization
This commit is contained in:
		
							parent
							
								
									ac0fb36c41
								
							
						
					
					
						commit
						ebcc38188e
					
				
					 2 changed files with 32 additions and 18 deletions
				
			
		|  | @ -19,6 +19,7 @@ import ( | |||
| 	"runtime" | ||||
| 	"strings" | ||||
| 	"time" | ||||
| 	"unicode" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models" | ||||
| 	"code.gitea.io/gitea/modules/base" | ||||
|  | @ -338,34 +339,46 @@ func RenderCommitMessageLink(msg, urlPrefix, urlDefault string, metas map[string | |||
| // RenderCommitMessageLinkSubject renders commit message as a XXS-safe link to
 | ||||
| // the provided default url, handling for special links without email to links.
 | ||||
| func RenderCommitMessageLinkSubject(msg, urlPrefix, urlDefault string, metas map[string]string) template.HTML { | ||||
| 	cleanMsg := template.HTMLEscapeString(msg) | ||||
| 	// we can safely assume that it will not return any error, since there
 | ||||
| 	// shouldn't be any special HTML.
 | ||||
| 	fullMessage, err := markup.RenderCommitMessageSubject([]byte(cleanMsg), urlPrefix, urlDefault, metas) | ||||
| 	if err != nil { | ||||
| 		log.Error("RenderCommitMessageSubject: %v", err) | ||||
| 		return "" | ||||
| 	msgLine := strings.TrimLeftFunc(msg, unicode.IsSpace) | ||||
| 	lineEnd := strings.IndexByte(msgLine, '\n') | ||||
| 	if lineEnd > 0 { | ||||
| 		msgLine = msgLine[:lineEnd] | ||||
| 	} | ||||
| 	msgLines := strings.Split(strings.TrimSpace(string(fullMessage)), "\n") | ||||
| 	if len(msgLines) == 0 { | ||||
| 	msgLine = strings.TrimRightFunc(msgLine, unicode.IsSpace) | ||||
| 	if len(msgLine) == 0 { | ||||
| 		return template.HTML("") | ||||
| 	} | ||||
| 	return template.HTML(msgLines[0]) | ||||
| 
 | ||||
| 	// we can safely assume that it will not return any error, since there
 | ||||
| 	// shouldn't be any special HTML.
 | ||||
| 	renderedMessage, err := markup.RenderCommitMessageSubject([]byte(template.HTMLEscapeString(msgLine)), urlPrefix, urlDefault, metas) | ||||
| 	if err != nil { | ||||
| 		log.Error("RenderCommitMessageSubject: %v", err) | ||||
| 		return template.HTML("") | ||||
| 	} | ||||
| 	return template.HTML(renderedMessage) | ||||
| } | ||||
| 
 | ||||
| // RenderCommitBody extracts the body of a commit message without its title.
 | ||||
| func RenderCommitBody(msg, urlPrefix string, metas map[string]string) template.HTML { | ||||
| 	cleanMsg := template.HTMLEscapeString(msg) | ||||
| 	fullMessage, err := markup.RenderCommitMessage([]byte(cleanMsg), urlPrefix, "", metas) | ||||
| 	msgLine := strings.TrimRightFunc(msg, unicode.IsSpace) | ||||
| 	lineEnd := strings.IndexByte(msgLine, '\n') | ||||
| 	if lineEnd > 0 { | ||||
| 		msgLine = msgLine[lineEnd+1:] | ||||
| 	} else { | ||||
| 		return template.HTML("") | ||||
| 	} | ||||
| 	msgLine = strings.TrimLeftFunc(msgLine, unicode.IsSpace) | ||||
| 	if len(msgLine) == 0 { | ||||
| 		return template.HTML("") | ||||
| 	} | ||||
| 
 | ||||
| 	renderedMessage, err := markup.RenderCommitMessage([]byte(template.HTMLEscapeString(msgLine)), urlPrefix, "", metas) | ||||
| 	if err != nil { | ||||
| 		log.Error("RenderCommitMessage: %v", err) | ||||
| 		return "" | ||||
| 	} | ||||
| 	body := strings.Split(strings.TrimSpace(string(fullMessage)), "\n") | ||||
| 	if len(body) == 0 { | ||||
| 		return template.HTML("") | ||||
| 	} | ||||
| 	return template.HTML(strings.Join(body[1:], "\n")) | ||||
| 	return template.HTML(renderedMessage) | ||||
| } | ||||
| 
 | ||||
| // RenderNote renders the contents of a git-notes file as a commit message.
 | ||||
|  |  | |||
|  | @ -2994,7 +2994,8 @@ function initFilterBranchTagDropdown(selector) { | |||
|     }); | ||||
| } | ||||
| 
 | ||||
| $(".commit-button").click(function() { | ||||
| $(".commit-button").click(function(e) { | ||||
|     e.preventDefault(); | ||||
|     $(this).parent().find('.commit-body').toggle(); | ||||
| }); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue