Skip to content
Snippets Groups Projects
Commit 27d952b1 authored by Douwe Maan's avatar Douwe Maan
Browse files

Fix cross-references originating from notes

parent b0164771
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -66,8 +66,8 @@ module Mentionable
end
 
# Create a cross-reference Note for each GFM reference to another Mentionable found in +mentionable_text+.
def create_cross_references!(author = self.author, without = [])
refs = referenced_mentionables(author)
def create_cross_references!(author = self.author, without = [], text = self.mentionable_text)
refs = referenced_mentionables(author, text)
# We're using this method instead of Array diffing because that requires
# both of the object's `hash` values to be the same, which may not be the
Loading
Loading
Loading
Loading
@@ -62,7 +62,6 @@ class Note < ActiveRecord::Base
 
serialize :st_diff
before_create :set_diff, if: ->(n) { n.line_code.present? }
after_update :set_references
 
class << self
def discussions_from_notes(notes)
Loading
Loading
@@ -333,15 +332,13 @@ class Note < ActiveRecord::Base
end
 
def noteable_type_name
if noteable_type.present?
noteable_type.downcase
end
noteable_type.downcase if noteable_type.present?
end
 
# FIXME: Hack for polymorphic associations with STI
# For more information visit http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#label-Polymorphic+Associations
def noteable_type=(sType)
super(sType.to_s.classify.constantize.base_class.to_s)
def noteable_type=(noteable_type)
super(noteable_type.to_s.classify.constantize.base_class.to_s)
end
 
# Reset notes events cache
Loading
Loading
@@ -357,10 +354,6 @@ class Note < ActiveRecord::Base
Event.reset_event_cache_for(self)
end
 
def set_references
create_new_cross_references!
end
def system?
read_attribute(:system)
end
Loading
Loading
Loading
Loading
@@ -11,13 +11,7 @@ module Notes
# Skip system notes, like status changes and cross-references.
unless note.system
event_service.leave_note(note, note.author)
# Create a cross-reference note if this Note contains GFM that names an
# issue, merge request, or commit.
note.references.each do |mentioned|
SystemNoteService.cross_reference(mentioned, note.noteable, note.author)
end
note.create_cross_references!
execute_hooks(note)
end
end
Loading
Loading
Loading
Loading
@@ -4,7 +4,7 @@ module Notes
return note unless note.editable?
 
note.update_attributes(params.merge(updated_by: current_user))
note.create_new_cross_references!
note.reset_events_cache
 
note
Loading
Loading
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