Skip to content
Snippets Groups Projects
Commit 8f05fbba authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets
Browse files

Dont show comment on diff if diff line was changed after comment left

parent 2d75b454
No related branches found
No related tags found
No related merge requests found
Loading
@@ -38,6 +38,8 @@ module CommitsHelper
Loading
@@ -38,6 +38,8 @@ module CommitsHelper
   
lines_arr = ::Gitlab::InlineDiff.processing diff_arr lines_arr = ::Gitlab::InlineDiff.processing diff_arr
lines_arr.each do |line| lines_arr.each do |line|
raw_line = line.dup
next if line.match(/^\-\-\- \/dev\/null/) next if line.match(/^\-\-\- \/dev\/null/)
next if line.match(/^\+\+\+ \/dev\/null/) next if line.match(/^\+\+\+ \/dev\/null/)
next if line.match(/^\-\-\- a/) next if line.match(/^\-\-\- a/)
Loading
@@ -58,7 +60,7 @@ module CommitsHelper
Loading
@@ -58,7 +60,7 @@ module CommitsHelper
else else
type = identification_type(line) type = identification_type(line)
line_code = build_line_anchor(diff, line_new, line_old) line_code = build_line_anchor(diff, line_new, line_old)
yield(full_line, type, line_code, line_new, line_old) yield(full_line, type, line_code, line_new, line_old, raw_line)
end end
   
   
Loading
Loading
Loading
@@ -99,10 +99,21 @@ class Note < ActiveRecord::Base
Loading
@@ -99,10 +99,21 @@ class Note < ActiveRecord::Base
diff.new_path if diff diff.new_path if diff
end end
   
def diff_old_line
line_code.split('_')[1].to_i
end
def diff_new_line def diff_new_line
line_code.split('_')[2].to_i line_code.split('_')[2].to_i
end end
   
def diff_line
if diff
@diff_line ||= diff.diff.lines.select { |line| line =~ /\A\+/ }[diff_new_line] ||
diff.diff.lines.select { |line| line =~ /\A\-/ }[diff_old_line]
end
end
def discussion_id def discussion_id
@discussion_id ||= [:discussion, noteable_type.try(:underscore), noteable_id || commit_id, line_code].join("-").to_sym @discussion_id ||= [:discussion, noteable_type.try(:underscore), noteable_id || commit_id, line_code].join("-").to_sym
end end
Loading
Loading
Loading
@@ -3,7 +3,7 @@
Loading
@@ -3,7 +3,7 @@
%a.supp_diff_link Diff suppressed. Click to show %a.supp_diff_link Diff suppressed. Click to show
   
%table.text-file{class: "#{'hide' if too_big}"} %table.text-file{class: "#{'hide' if too_big}"}
- each_diff_line(diff, index) do |line, type, line_code, line_new, line_old| - each_diff_line(diff, index) do |line, type, line_code, line_new, line_old, raw_line|
%tr.line_holder{ id: line_code, class: "#{type}" } %tr.line_holder{ id: line_code, class: "#{type}" }
- if type == "match" - if type == "match"
%td.old_line= "..." %td.old_line= "..."
Loading
@@ -20,4 +20,4 @@
Loading
@@ -20,4 +20,4 @@
- if @reply_allowed - if @reply_allowed
- comments = @line_notes.select { |n| n.line_code == line_code }.sort_by(&:created_at) - comments = @line_notes.select { |n| n.line_code == line_code }.sort_by(&:created_at)
- unless comments.empty? - unless comments.empty?
= render "projects/notes/diff_notes_with_reply", notes: comments = render "projects/notes/diff_notes_with_reply", notes: comments, raw_line: raw_line
- note = notes.first # example note - note = notes.first # example note
%tr.notes_holder -# Check if line want not changed since comment was left
%td.notes_line{ colspan: 2 } - if !defined?(raw_line) || raw_line == note.diff_line
%span.btn.disabled %tr.notes_holder
%i.icon-comment %td.notes_line{ colspan: 2 }
= notes.count %span.btn.disabled
%td.notes_content %i.icon-comment
%ul.notes{ rel: note.discussion_id } = notes.count
= render notes %td.notes_content
%ul.notes{ rel: note.discussion_id }
= render notes
   
= render "projects/notes/discussion_reply_button", note: note = render "projects/notes/discussion_reply_button", note: note
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