Files
gitea/templates/repo/diff/conversation.tmpl
T
wxiaoguang 222136ee71 refactor: clean up pull request comment related code and template dict (#39789)
1. drop comment.commit_id
2. refactor templates, remove `dict "." .` from templates
2026-10-15 23:09:41 +00:00

76 lines
3.7 KiB
Handlebars

{{if len .comments}}
{{$root := ctx.RootData}}
{{$comments := $.comments}}
{{$firstComment := index $comments 0}}
{{$resolved := $firstComment.IsResolved}}
{{$invalid := $firstComment.Invalidated}}
{{$resolveDoer := $firstComment.ResolveDoer}}
{{$hasReview := and $firstComment.Review}}
{{$isReviewPending := and $hasReview (eq $firstComment.Review.Type 0)}}
{{$referenceUrl := printf "%s#%s" $root.Issue.Link $firstComment.HashTag}}
{{$canAddComment := and $root.SignedUserID (not $root.Repository.IsArchived)}}
{{$canMarkAsResolved := and $root.CanMarkConversation $hasReview (not $isReviewPending)}}
{{$repoLink := $root.RepoLink}}
<div class="conversation-holder" data-path="{{$firstComment.TreePath}}" data-side="{{if lt $firstComment.Line 0}}left{{else}}right{{end}}" data-idx="{{$firstComment.UnsignedLine}}">
{{if $resolved}}
<div class="resolved-placeholder">
<div class="flex-text-block tw-flex-wrap tw-text-text-light">
{{svg "octicon-check"}}
<b>{{$resolveDoer.Name}}</b> {{ctx.Locale.Tr "repo.issues.review.resolved_by"}}
{{if $invalid}}
<!--
We only handle the case $resolved=true and $invalid=true in this template because if the comment is not resolved it has the outdated label in the comments area (not the header above).
The case $resolved=false and $invalid=true is handled in repo/diff/comments.tmpl
-->
<a href="{{$referenceUrl}}" class="ui label basic small tw-ml-2" data-tooltip-content="{{ctx.Locale.Tr "repo.issues.review.outdated_description"}}">
{{ctx.Locale.Tr "repo.issues.review.outdated"}}
</a>
{{end}}
</div>
<div class="flex-text-block">
<button type="button" id="show-outdated-{{$firstComment.ID}}" data-comment="{{$firstComment.ID}}" class="btn tiny show-outdated">
{{svg "octicon-unfold" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.issues.review.show_resolved"}}
</button>
<button type="button" id="hide-outdated-{{$firstComment.ID}}" data-comment="{{$firstComment.ID}}" class="btn tiny hide-outdated tw-hidden">
{{svg "octicon-fold" 16 "tw-mr-2"}}{{ctx.Locale.Tr "repo.issues.review.hide_resolved"}}
</button>
</div>
</div>
{{end}}
<div id="code-comments-{{$firstComment.ID}}" class="field comment-code-cloud {{if $resolved}}tw-hidden{{end}}">
<div class="comment-list">
<div class="ui comments">
{{template "repo/diff/comments" dict "comments" $comments}}
</div>
</div>
<div class="flex-text-block tw-mt-2 tw-flex-wrap tw-justify-end">
<div class="ui buttons">
<button type="button" class="ui icon tiny basic button previous-conversation">
{{svg "octicon-arrow-up" 12}} {{ctx.Locale.Tr "repo.issues.previous"}}
</button>
<button type="button" class="ui icon tiny basic button next-conversation">
{{svg "octicon-arrow-down" 12}} {{ctx.Locale.Tr "repo.issues.next"}}
</button>
</div>
{{if $canMarkAsResolved}}
<button type="button" class="ui icon tiny basic button resolve-conversation" data-origin="diff" data-action="{{if not $resolved}}Resolve{{else}}UnResolve{{end}}" data-comment-id="{{$firstComment.ID}}" data-update-url="{{$repoLink}}/issues/resolve_conversation">
{{if $resolved}}
{{ctx.Locale.Tr "repo.issues.review.un_resolve_conversation"}}
{{else}}
{{ctx.Locale.Tr "repo.issues.review.resolve_conversation"}}
{{end}}
</button>
{{end}}
{{if $canAddComment}}
<button type="button" class="comment-form-reply ui primary icon tiny button">
{{svg "octicon-reply" 12}}{{ctx.Locale.Tr "repo.diff.comment.reply"}}
</button>
{{end}}
</div>
{{template "repo/diff/comment_form" dict "ReplyReviewComment" $firstComment}}
</div>
</div>
{{else}}
{{template "repo/diff/conversation_outdated"}}
{{end}}