[BUG] split code conversations in diff tab (#2306)

Follow-up of #2282 and #2296 (which tried to address #2278)

One of the issue with the previous PR is that when a conversation on the Files tab was marked as "resolved", it would fetch all the comments for that line (even the outdated ones, which should not be shown on this page - except when explicitly activated).

To properly fix this, I have changed `FetchCodeCommentsByLine` to `FetchCodeConversation`. Its role is to fetch all comments related to a given (review, path, line) and reverted my changes in the template (which were based on a misunderstanding).

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/2306
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Reviewed-by: Gusted <gusted@noreply.codeberg.org>
Co-authored-by: oliverpool <git@olivier.pfad.fr>
Co-committed-by: oliverpool <git@olivier.pfad.fr>
This commit is contained in:
oliverpool 2024-02-16 12:16:11 +00:00
parent 45c0fa4905
commit 07bc099401
11 changed files with 348 additions and 144 deletions

View file

@ -0,0 +1,3 @@
{{range .conversations}}
{{template "repo/diff/conversation" dict "." $ "comments" .}}
{{end}}

View file

@ -108,44 +108,44 @@
</tr>
{{if and (eq .GetType 3) $hasmatch}}
{{$match := index $section.Lines $line.Match}}
{{if or $line.Comments $match.Comments}}
{{if or $line.Conversations $match.Conversations}}
<tr class="add-comment" data-line-type="{{.GetHTMLDiffLineType}}">
<td class="add-comment-left" colspan="4">
{{if $line.Comments}}
{{if $line.Conversations}}
{{if eq $line.GetCommentSide "previous"}}
{{template "repo/diff/conversation" dict "." $.root "comments" $line.Comments}}
{{template "repo/diff/conversations" dict "." $.root "conversations" $line.Conversations}}
{{end}}
{{end}}
{{if $match.Comments}}
{{if $match.Conversations}}
{{if eq $match.GetCommentSide "previous"}}
{{template "repo/diff/conversation" dict "." $.root "comments" $match.Comments}}
{{template "repo/diff/conversations" dict "." $.root "conversations" $match.Conversations}}
{{end}}
{{end}}
</td>
<td class="add-comment-right" colspan="4">
{{if $line.Comments}}
{{if $line.Conversations}}
{{if eq $line.GetCommentSide "proposed"}}
{{template "repo/diff/conversation" dict "." $.root "comments" $line.Comments}}
{{template "repo/diff/conversations" dict "." $.root "conversations" $line.Conversations}}
{{end}}
{{end}}
{{if $match.Comments}}
{{if $match.Conversations}}
{{if eq $match.GetCommentSide "proposed"}}
{{template "repo/diff/conversation" dict "." $.root "comments" $match.Comments}}
{{template "repo/diff/conversations" dict "." $.root "conversations" $match.Conversations}}
{{end}}
{{end}}
</td>
</tr>
{{end}}
{{else if $line.Comments}}
{{else if $line.Conversations}}
<tr class="add-comment" data-line-type="{{.GetHTMLDiffLineType}}">
<td class="add-comment-left" colspan="4">
{{if eq $line.GetCommentSide "previous"}}
{{template "repo/diff/conversation" dict "." $.root "comments" $line.Comments}}
{{template "repo/diff/conversations" dict "." $.root "conversations" $line.Conversations}}
{{end}}
</td>
<td class="add-comment-right" colspan="4">
{{if eq $line.GetCommentSide "proposed"}}
{{template "repo/diff/conversation" dict "." $.root "comments" $line.Comments}}
{{template "repo/diff/conversations" dict "." $.root "conversations" $line.Conversations}}
{{end}}
</td>
</tr>

View file

@ -60,10 +60,10 @@
*/}}</td>
{{end}}
</tr>
{{if $line.Comments}}
{{if $line.Conversations}}
<tr class="add-comment" data-line-type="{{.GetHTMLDiffLineType}}">
<td class="add-comment-left add-comment-right" colspan="5">
{{template "repo/diff/conversation" dict "." $.root "comments" $line.Comments}}
{{template "repo/diff/conversations" dict "." $.root "conversations" $line.Conversations}}
</td>
</tr>
{{end}}