Add additional text prefix in cross project labels

This commit is contained in:
Grzegorz Bizon 2016-02-25 14:26:41 +01:00
parent a472c1bfd0
commit 7183a7da6d
3 changed files with 17 additions and 6 deletions

View file

@ -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

View file

@ -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

View file

@ -40,8 +40,12 @@ module Banzai
only_path: context[:only_path])
end
def object_link_text(object, _matches)
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