aboutsummaryrefslogtreecommitdiffstats
path: root/templates/repo/issue/view_content/conversation.tmpl
blob: aa94a2dbc42f81361f7844d608a57d68ef085ea4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
{{if len .comments}}
	{{$comment := index .comments 0}}
	{{$invalid := $comment.Invalidated}}
	{{$resolved := $comment.IsResolved}}
	{{$resolveDoer := $comment.ResolveDoer}}
	{{$hasReview := and $comment.Review}}
	{{$isReviewPending := and $hasReview (eq $comment.Review.Type 0)}}
	<div class="ui segments conversation-holder">
		<div class="ui segment collapsible-comment-box tw-py-2 tw-flex tw-items-center tw-justify-between">
			<div class="tw-flex tw-items-center">
				<a href="{{$comment.CodeCommentLink ctx}}" class="file-comment tw-ml-2 tw-break-anywhere">{{$comment.TreePath}}</a>
				{{if $invalid}}
					<span 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"}}
					</span>
				{{end}}
			</div>
			<div>
				{{if or $invalid $resolved}}
					<button id="show-outdated-{{$comment.ID}}" data-comment="{{$comment.ID}}" class="{{if not $resolved}}tw-hidden{{end}} btn tiny show-outdated">
						{{svg "octicon-unfold" 16 "tw-mr-2"}}
						{{if $resolved}}
							{{ctx.Locale.Tr "repo.issues.review.show_resolved"}}
						{{else}}
							{{ctx.Locale.Tr "repo.issues.review.show_outdated"}}
						{{end}}
					</button>
					<button id="hide-outdated-{{$comment.ID}}" data-comment="{{$comment.ID}}" class="{{if $resolved}}tw-hidden {{end}} btn tiny hide-outdated">
						{{svg "octicon-fold" 16 "tw-mr-2"}}
						{{if $resolved}}
							{{ctx.Locale.Tr "repo.issues.review.hide_resolved"}}
						{{else}}
							{{ctx.Locale.Tr "repo.issues.review.hide_outdated"}}
						{{end}}
					</button>
				{{end}}
			</div>
		</div>
		{{$diff := (CommentMustAsDiff ctx $comment)}}
		{{if $diff}}
			{{$file := (index $diff.Files 0)}}
			<div id="code-preview-{{$comment.ID}}" class="ui table segment{{if $resolved}} tw-hidden{{end}}">
				<div class="diff-file-box file-content {{TabSizeClass $.Editorconfig $file.Name}}">
					<div class="file-body file-code code-view code-diff code-diff-unified unicode-escaped">
						<table>
							<tbody>
								{{template "repo/diff/section_unified" dict "file" $file "root" $}}
							</tbody>
						</table>
					</div>
				</div>
			</div>
		{{end}}
		<div id="code-comments-{{$comment.ID}}" class="comment-code-cloud ui segment{{if $resolved}} tw-hidden{{end}}">
			<div class="ui comments tw-mb-0">
				{{range .comments}}
					{{$createdSubStr:= DateUtils.TimeSince .CreatedUnix}}
					<div class="comment code-comment" id="{{.HashTag}}">
						<div class="content comment-container">
							<div class="comment-header">
								<div class="comment-header-left tw-flex tw-items-center">
									{{if not .OriginalAuthor}}
										<a class="avatar">
											{{ctx.AvatarUtils.Avatar .Poster 20}}
										</a>
									{{end}}
									<span class="text grey muted-links">
										{{if .OriginalAuthor}}
											<span class="text black">
												{{svg (MigrationIcon $.Repository.GetOriginalURLHostname)}}
												{{.OriginalAuthor}}
											</span>
											{{if $.Repository.OriginalURL}}
											<span class="migrate">({{ctx.Locale.Tr "repo.migrated_from" $.Repository.OriginalURL $.Repository.GetOriginalURLHostname}})</span>
											{{end}}
										{{else}}
											{{template "shared/user/authorlink" .Poster}}
										{{end}}
										{{ctx.Locale.Tr "repo.issues.commented_at" .HashTag $createdSubStr}}
									</span>
								</div>
								<div class="comment-header-right actions tw-flex tw-items-center">
									{{template "repo/issue/view_content/show_role" dict "ShowRole" .ShowRole}}
									{{if not $.Repository.IsArchived}}
										{{template "repo/issue/view_content/add_reaction" dict "ActionURL" (printf "%s/comments/%d/reactions" $.RepoLink .ID)}}
										{{template "repo/issue/view_content/context_menu" dict "item" . "delete" true "issue" true "diff" true "IsCommentPoster" (and $.IsSigned (eq $.SignedUserID .PosterID))}}
									{{end}}
								</div>
							</div>
							<div class="text comment-content">
								<div class="render-content markup" {{if or $.Permission.IsAdmin $.HasIssuesOrPullsWritePermission (and $.IsSigned (eq $.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="{{$.RepoLink}}/comments/{{.ID}}" data-content-version="{{.ContentVersion}}" data-context="{{$.RepoLink}}" data-attachment-url="{{$.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 "ActionURL" (printf "%s/comments/%d/reactions" $.RepoLink .ID) "Reactions" $reactions}}
							{{end}}
						</div>
					</div>
				{{end}}
			</div>
			<div class="flex-text-block tw-flex-wrap tw-my-2">
				<div class="tw-flex-1">
					{{if $resolved}}
						<div class="ui grey text">
							{{svg "octicon-check" 16 "tw-mr-1"}}
							<b>{{$resolveDoer.Name}}</b> {{ctx.Locale.Tr "repo.issues.review.resolved_by"}}
						</div>
					{{end}}
				</div>
				<div class="flex-text-block">
					{{if and $.CanMarkConversation $hasReview (not $isReviewPending)}}
						<button class="ui tiny basic button resolve-conversation" data-origin="timeline" data-action="{{if not $resolved}}Resolve{{else}}UnResolve{{end}}" data-comment-id="{{$comment.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 and $.SignedUserID (not $.Repository.IsArchived)}}
						<button class="comment-form-reply ui primary icon tiny button">
							{{svg "octicon-reply" 12}}{{ctx.Locale.Tr "repo.diff.comment.reply"}}
						</button>
					{{end}}
				</div>
			</div>
			{{template "repo/diff/comment_form_datahandler" dict "hidden" true "reply" $comment.ReviewID "root" $ "comment" $comment}}
		</div>
	</div>
{{else}}
	{{template "repo/diff/conversation_outdated"}}
{{end}}