Skip to content
Snippets Groups Projects
Commit a5838524 authored by Riyad Preukschas's avatar Riyad Preukschas
Browse files

Add discussions for merge requests to notes controller

parent 9b919939
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -6,10 +6,15 @@ class NotesController < ProjectResourceController
respond_to :js
 
def index
notes
@notes = Notes::LoadContext.new(project, current_user, params).execute
if params[:target_type] == "merge_request"
@mixed_targets = true
@mixed_targets = true
@main_target_type = params[:target_type].camelize
@discussions = discussions_from_notes
@has_diff = true
elsif params[:target_type] == "commit"
@has_diff = true
end
 
respond_with(@notes)
Loading
Loading
@@ -40,7 +45,33 @@ class NotesController < ProjectResourceController
 
protected
 
def notes
@notes = Notes::LoadContext.new(project, current_user, params).execute
def discussion_notes_for(note)
@notes.select do |other_note|
note.discussion_id == other_note.discussion_id
end
end
def discussions_from_notes
discussion_ids = []
discussions = []
@notes.each do |note|
next if discussion_ids.include?(note.discussion_id)
# don't group notes for the main target
if for_main_target?(note)
discussions << [note]
else
discussions << discussion_notes_for(note)
discussion_ids << note.discussion_id
end
end
discussions
end
# Helps to distinguish e.g. commit notes in mr notes list
def for_main_target?(note)
!@mixed_targets || (@main_target_type == note.noteable_type && !note.for_diff_line?)
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment