From 080924f979df39ad96eb1ab4a029d032bcba6e86 Mon Sep 17 00:00:00 2001
From: Douwe Maan <douwe@selenight.nl>
Date: Fri, 19 Aug 2016 12:38:40 -0500
Subject: [PATCH] =?UTF-8?q?Fix=20bug=20where=20notes=20weren=E2=80=99t=20s?=
 =?UTF-8?q?hown=20in=20discussion=20when=20the=20code=20had=20changed=20af?=
 =?UTF-8?q?ter=20creation?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/models/concerns/note_on_diff.rb              | 4 ++++
 app/models/diff_note.rb                          | 4 ++++
 app/models/discussion.rb                         | 1 +
 app/models/legacy_diff_note.rb                   | 4 ++++
 app/views/discussions/_diff_with_notes.html.haml | 2 +-
 5 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/app/models/concerns/note_on_diff.rb b/app/models/concerns/note_on_diff.rb
index 4be6a2f621b..a881fb83b7f 100644
--- a/app/models/concerns/note_on_diff.rb
+++ b/app/models/concerns/note_on_diff.rb
@@ -17,6 +17,10 @@ module NoteOnDiff
     raise NotImplementedError
   end
 
+  def original_line_code
+    raise NotImplementedError
+  end
+
   def diff_attributes
     raise NotImplementedError
   end
diff --git a/app/models/diff_note.rb b/app/models/diff_note.rb
index f56c3d74ae3..aa54189fea9 100644
--- a/app/models/diff_note.rb
+++ b/app/models/diff_note.rb
@@ -57,6 +57,10 @@ class DiffNote < Note
     diff_file.position(line) == self.original_position
   end
 
+  def original_line_code
+    self.diff_file.line_code(self.diff_line)
+  end
+
   def active?(diff_refs = nil)
     return false unless supported?
     return true if for_commit?
diff --git a/app/models/discussion.rb b/app/models/discussion.rb
index 3fddc084af2..9676bc03470 100644
--- a/app/models/discussion.rb
+++ b/app/models/discussion.rb
@@ -12,6 +12,7 @@ class Discussion
             :for_merge_request?,
 
             :line_code,
+            :original_line_code,
             :diff_file,
             :for_line?,
             :active?,
diff --git a/app/models/legacy_diff_note.rb b/app/models/legacy_diff_note.rb
index 8e26cbe9835..40277a9b139 100644
--- a/app/models/legacy_diff_note.rb
+++ b/app/models/legacy_diff_note.rb
@@ -49,6 +49,10 @@ class LegacyDiffNote < Note
     !line.meta? && diff_file.line_code(line) == self.line_code
   end
 
+  def original_line_code
+    self.line_code
+  end
+
   # Check if this note is part of an "active" discussion
   #
   # This will always return true for anything except MergeRequest noteables,
diff --git a/app/views/discussions/_diff_with_notes.html.haml b/app/views/discussions/_diff_with_notes.html.haml
index b2e55f7647a..3a95a652810 100644
--- a/app/views/discussions/_diff_with_notes.html.haml
+++ b/app/views/discussions/_diff_with_notes.html.haml
@@ -7,7 +7,7 @@
 
   .diff-content.code.js-syntax-highlight
     %table
-      - discussions = { discussion.line_code => discussion }
+      - discussions = { discussion.original_line_code => discussion }
       = render partial: "projects/diffs/line",
         collection: discussion.truncated_diff_lines,
         as: :line,
-- 
GitLab