mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-11-04 00:11:04 +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}}
 |