summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-02-25 14:26:41 +0100
committerGrzegorz Bizon <grzesiek.bizon@gmail.com>2016-03-03 10:41:11 +0100
commit7183a7da6dbe5d2faf2ae03dfe4652ca6ed6dfde (patch)
tree975454b3d1d464db7570486fbd60786ddaca7d71
parenta472c1bfd0b5c09e2c9b9da5ff0de3c90aaeda2f (diff)
downloadgitlab-ce-7183a7da6dbe5d2faf2ae03dfe4652ca6ed6dfde.tar.gz
Add additional text prefix in cross project labels
-rw-r--r--app/helpers/labels_helper.rb12
-rw-r--r--app/models/label.rb3
-rw-r--r--lib/banzai/filter/label_reference_filter.rb8
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 = %(<span class="label color-label") +
%( style="background-color: #{label_color}; color: #{text_color}">) +
- escape_once(label.name) + '</span>'
+ label_prefix + escape_once(label.name) + '</span>'
span.html_safe
end
+ def render_colored_cross_project_label(label)
+ label_prefix = "#{label.project.path_with_namespace} &raquo; "
+ 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