diff options
author | Robert Speicher <robert@gitlab.com> | 2016-01-07 19:22:43 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2016-01-07 19:22:43 +0000 |
commit | 90510f00376591f3adc4719f8a9fbc6434388480 (patch) | |
tree | 6f9d8118253efa751adf7e9bede6885f19996b04 /app | |
parent | 3c93e588e9a829bb805aab9ccafb94383f44ed57 (diff) | |
parent | 539b41929bddf0e82d986f9e823208dd92707a21 (diff) | |
download | gitlab-ce-90510f00376591f3adc4719f8a9fbc6434388480.tar.gz |
Merge branch 'milestone-ref' into 'master'
Link to milestone in "Milestone changed" system note
Fixes https://gitlab.com/gitlab-org/gitlab-ce/issues/4141
See merge request !2203
Diffstat (limited to 'app')
-rw-r--r-- | app/models/milestone.rb | 22 | ||||
-rw-r--r-- | app/services/system_note_service.rb | 6 |
2 files changed, 25 insertions, 3 deletions
diff --git a/app/models/milestone.rb b/app/models/milestone.rb index d8c7536cd31..550d14d4c39 100644 --- a/app/models/milestone.rb +++ b/app/models/milestone.rb @@ -22,6 +22,7 @@ class Milestone < ActiveRecord::Base include InternalId include Sortable + include Referable include StripAttribute belongs_to :project @@ -61,6 +62,27 @@ class Milestone < ActiveRecord::Base end end + def self.reference_pattern + nil + end + + def self.link_reference_pattern + super("milestones", /(?<milestone>\d+)/) + end + + def to_reference(from_project = nil) + escaped_title = self.title.gsub("]", "\\]") + + h = Gitlab::Application.routes.url_helpers + url = h.namespace_project_milestone_url(self.project.namespace, self.project, self) + + "[#{escaped_title}](#{url})" + end + + def reference_link_text(from_project = nil) + self.title + end + def expired? if due_date due_date.past? diff --git a/app/services/system_note_service.rb b/app/services/system_note_service.rb index 98a71cbf1ad..1083bcec054 100644 --- a/app/services/system_note_service.rb +++ b/app/services/system_note_service.rb @@ -41,7 +41,7 @@ class SystemNoteService # # Returns the created Note object def self.change_assignee(noteable, project, author, assignee) - body = assignee.nil? ? 'Assignee removed' : "Reassigned to @#{assignee.username}" + body = assignee.nil? ? 'Assignee removed' : "Reassigned to #{assignee.to_reference}" create_note(noteable: noteable, project: project, author: author, note: body) end @@ -66,7 +66,7 @@ class SystemNoteService def self.change_label(noteable, project, author, added_labels, removed_labels) labels_count = added_labels.count + removed_labels.count - references = ->(label) { "~#{label.id}" } + references = ->(label) { label.to_reference(:id) } added_labels = added_labels.map(&references).join(' ') removed_labels = removed_labels.map(&references).join(' ') @@ -103,7 +103,7 @@ class SystemNoteService # Returns the created Note object def self.change_milestone(noteable, project, author, milestone) body = 'Milestone ' - body += milestone.nil? ? 'removed' : "changed to #{milestone.title}" + body += milestone.nil? ? 'removed' : "changed to #{milestone.to_reference(project)}" create_note(noteable: noteable, project: project, author: author, note: body) end |