mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-30 22:11:07 +00:00 
			
		
		
		
	fixes #22907
Tested:
- [x] issue content edit
- [x] issue content change tasklist
- [x] pull request content edit
- [x] pull request change tasklist

(cherry picked from commit aa92b13164e84c26be91153b6022220ce0a27720)
Conflicts:
	models/issues/comment.go
	 c7a389f2b2 [FEAT] allow setting the update date on issues and comments
	options/locale/locale_en-US.ini
	 trivial context conflicts
	routers/api/v1/repo/issue_comment.go
	routers/api/v1/repo/issue_comment_attachment.go
	services/issue/comments.go
	services/issue/content.go
         user blocking is implemented differently in Forgejo
	routers/web/repo/issue.go
	 trivial difference from 6a0750177f Allow to save empty comment
         user blocking is implemented differently in Forgejo
	templates/repo/issue/view_content/conversation.tmpl
	 templates changed a lot in Forgejo but the change is
	 trivially ported
	tests/integration/issue_test.go
	 other tests were added in the same region
	web_src/js/features/repo-issue-edit.js
	 the code is still web_src/js/features/repo-legacy.js
	 trivially ported
		
	
			
		
			
				
	
	
		
			75 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Go HTML Template
		
	
	
	
	
	
			
		
		
	
	
			75 lines
		
	
	
	
		
			3.6 KiB
		
	
	
	
		
			Go HTML Template
		
	
	
	
	
	
| {{range .comments}}
 | |
| 
 | |
| {{$createdStr:= TimeSinceUnix .CreatedUnix ctx.Locale}}
 | |
| <div class="comment" id="{{.HashTag}}">
 | |
| 	{{if .OriginalAuthor}}
 | |
| 		<span class="avatar">{{ctx.AvatarUtils.Avatar nil}}</span>
 | |
| 	{{else}}
 | |
| 		{{template "shared/user/avatarlink" dict "user" .Poster}}
 | |
| 	{{end}}
 | |
| 	<div class="content comment-container">
 | |
| 		<div class="ui top attached header comment-header tw-flex tw-items-center tw-justify-between">
 | |
| 			<div class="comment-header-left tw-flex tw-items-center">
 | |
| 				{{if .OriginalAuthor}}
 | |
| 					<span class="text black tw-font-semibold tw-mr-1">
 | |
| 						{{svg (MigrationIcon $.root.Repository.GetOriginalURLHostname)}}
 | |
| 						{{.OriginalAuthor}}
 | |
| 					</span>
 | |
| 					<span class="text grey muted-links">
 | |
| 						{{ctx.Locale.Tr "repo.issues.commented_at" .HashTag $createdStr}}
 | |
| 					</span>
 | |
| 					<span class="text migrate">
 | |
| 						{{if $.root.Repository.OriginalURL}}
 | |
| 							({{ctx.Locale.Tr "repo.migrated_from" $.root.Repository.OriginalURL $.root.Repository.GetOriginalURLHostname}})
 | |
| 						{{end}}
 | |
| 					</span>
 | |
| 				{{else}}
 | |
| 					<span class="text grey muted-links">
 | |
| 						{{template "shared/user/namelink" .Poster}}
 | |
| 						{{ctx.Locale.Tr "repo.issues.commented_at" .HashTag $createdStr}}
 | |
| 					</span>
 | |
| 				{{end}}
 | |
| 			</div>
 | |
| 			<div class="comment-header-right actions tw-flex tw-items-center">
 | |
| 				{{if .Invalidated}}
 | |
| 					{{$referenceUrl := printf "%s#%s" $.root.Issue.Link .HashTag}}
 | |
| 					<a href="{{AppSubUrl}}{{$referenceUrl}}" class="ui label basic small" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.review.outdated_description"}}">
 | |
| 						{{ctx.Locale.Tr "repo.issues.review.outdated"}}
 | |
| 					</a>
 | |
| 				{{end}}
 | |
| 				{{if and .Review}}
 | |
| 					{{if eq .Review.Type 0}}
 | |
| 						<div class="ui label basic small yellow pending-label" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.review.pending.tooltip" (ctx.Locale.Tr "repo.diff.review") (ctx.Locale.Tr "repo.diff.review.approve") (ctx.Locale.Tr "repo.diff.review.comment") (ctx.Locale.Tr "repo.diff.review.reject")}}">
 | |
| 						{{ctx.Locale.Tr "repo.issues.review.pending"}}
 | |
| 						</div>
 | |
| 					{{else}}
 | |
| 						<div class="ui label basic small">
 | |
| 						{{ctx.Locale.Tr "repo.issues.review.review"}}
 | |
| 						</div>
 | |
| 					{{end}}
 | |
| 				{{end}}
 | |
| 				{{template "repo/issue/view_content/add_reaction" dict "ctxData" $.root "ActionURL" (printf "%s/comments/%d/reactions" $.root.RepoLink .ID)}}
 | |
| 				{{template "repo/issue/view_content/context_menu" dict "ctxData" $.root "item" . "delete" true "issue" false "diff" true "IsCommentPoster" (and $.root.IsSigned (eq $.root.SignedUserID .PosterID))}}
 | |
| 			</div>
 | |
| 		</div>
 | |
| 		<div class="ui attached segment comment-body">
 | |
| 			<div class="render-content markup" {{if or $.Permission.IsAdmin $.HasIssuesOrPullsWritePermission (and $.root.IsSigned (eq $.root.SignedUserID .PosterID))}}data-can-edit="true"{{end}}>
 | |
| 			{{if .RenderedContent}}
 | |
| 				{{.RenderedContent}}
 | |
| 			{{else}}
 | |
| 				<span class="no-content">{{ctx.Locale.Tr "repo.issues.no_content"}}</span>
 | |
| 			{{end}}
 | |
| 			</div>
 | |
| 			<div id="issuecomment-{{.ID}}-raw" class="raw-content tw-hidden">{{.Content}}</div>
 | |
| 			<div class="edit-content-zone tw-hidden" data-update-url="{{$.root.RepoLink}}/comments/{{.ID}}" data-content-version="{{.ContentVersion}}" data-context="{{$.root.RepoLink}}" data-attachment-url="{{$.root.RepoLink}}/comments/{{.ID}}/attachments"></div>
 | |
| 			{{if .Attachments}}
 | |
| 				{{template "repo/issue/view_content/attachments" dict "Attachments" .Attachments "RenderedContent" .RenderedContent}}
 | |
| 			{{end}}
 | |
| 		</div>
 | |
| 		{{$reactions := .Reactions.GroupByType}}
 | |
| 		{{if $reactions}}
 | |
| 			{{template "repo/issue/view_content/reactions" dict "ctxData" $.root "ActionURL" (printf "%s/comments/%d/reactions" $.root.RepoLink .ID) "Reactions" $reactions}}
 | |
| 		{{end}}
 | |
| 	</div>
 | |
| </div>
 | |
| {{end}}
 |