From 7183a7da6dbe5d2faf2ae03dfe4652ca6ed6dfde Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Thu, 25 Feb 2016 14:26:41 +0100 Subject: Add additional text prefix in cross project labels --- app/helpers/labels_helper.rb | 12 +++++++++--- app/models/label.rb | 3 ++- lib/banzai/filter/label_reference_filter.rb | 8 ++++++-- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/app/helpers/labels_helper.rb b/app/helpers/labels_helper.rb index 1c7fcc13b42..122f50081e4 100644 --- a/app/helpers/labels_helper.rb +++ b/app/helpers/labels_helper.rb @@ -50,7 +50,7 @@ module LabelsHelper @project.labels.pluck(:title) end - def render_colored_label(label) + def render_colored_label(label, label_prefix = '') label_color = label.color || Label::DEFAULT_COLOR text_color = text_color_for_bg(label_color) @@ -58,11 +58,16 @@ module LabelsHelper # by LabelReferenceFilter span = %() + - escape_once(label.name) + '' + label_prefix + escape_once(label.name) + '' span.html_safe end + def render_colored_cross_project_label(label) + label_prefix = "#{label.project.path_with_namespace} » " + render_colored_label(label, label_prefix) + end + def suggested_colors [ '#0033CC', @@ -119,5 +124,6 @@ module LabelsHelper end # Required for Banzai::Filter::LabelReferenceFilter - module_function :render_colored_label, :text_color_for_bg, :escape_once + module_function :render_colored_label, :render_colored_cross_project_label, + :text_color_for_bg, :escape_once end diff --git a/app/models/label.rb b/app/models/label.rb index c6abd6c9712..1bb4f35cea2 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -67,6 +67,7 @@ class Label < ActiveRecord::Base nil end + ## # Returns the String necessary to reference this Label in Markdown # # format - Symbol format to use (default: :id, optional: :name) @@ -78,6 +79,7 @@ class Label < ActiveRecord::Base # Label.first.to_reference(project) # => "gitlab-org/gitlab-ce~1" # # Returns a String + # def to_reference(from_project = nil, format: :id) reference = label_format_reference(format) @@ -88,7 +90,6 @@ class Label < ActiveRecord::Base end end - def open_issues_count issues.opened.count end diff --git a/lib/banzai/filter/label_reference_filter.rb b/lib/banzai/filter/label_reference_filter.rb index ae5d4122e22..85fec970ebd 100644 --- a/lib/banzai/filter/label_reference_filter.rb +++ b/lib/banzai/filter/label_reference_filter.rb @@ -40,8 +40,12 @@ module Banzai only_path: context[:only_path]) end - def object_link_text(object, _matches) - LabelsHelper.render_colored_label(object) + def object_link_text(object, matches) + if context[:project] == object.project + LabelsHelper.render_colored_label(object) + else + LabelsHelper.render_colored_cross_project_label(object) + end end # Parameters to pass to `Label.find_by` based on the given arguments -- cgit v1.2.1