mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-25 04:26:08 +10:00
Merge branch 'label-tooltip' into 'master'
Add label description in tooltip to labels in issue index and sidebar The tooltip can get quite big, but it’s so useful to inform people about what these labels mean new   @JobV writes on Slack: > yeah I think it’s better than not, but I’d have to try it 😃 > > cautious yes, revert if it’s annoying 😉 See merge request !3124
This commit is contained in:
@@ -20,6 +20,7 @@ v 8.6.0 (unreleased)
|
||||
- Memoize @group in Admin::GroupsController (Yatish Mehta)
|
||||
- Indicate how much an MR diverged from the target branch (Pierre de La Morinerie)
|
||||
- Added omniauth-auth0 Gem (Daniel Carraro)
|
||||
- Add label description in tooltip to labels in issue index and sidebar
|
||||
- Strip leading and trailing spaces in URL validator (evuez)
|
||||
- Add "last_sign_in_at" and "confirmed_at" to GET /users/* API endpoints for admins (evuez)
|
||||
- Return empty array instead of 404 when commit has no statuses in commit status API
|
||||
|
||||
@@ -32,7 +32,7 @@ module LabelsHelper
|
||||
# link_to_label(label) { "My Custom Label Text" }
|
||||
#
|
||||
# Returns a String
|
||||
def link_to_label(label, project: nil, type: :issue, &block)
|
||||
def link_to_label(label, project: nil, type: :issue, tooltip: true, &block)
|
||||
project ||= @project || label.project
|
||||
link = send("namespace_project_#{type.to_s.pluralize}_path",
|
||||
project.namespace,
|
||||
@@ -42,7 +42,7 @@ module LabelsHelper
|
||||
if block_given?
|
||||
link_to link, &block
|
||||
else
|
||||
link_to render_colored_label(label), link
|
||||
link_to render_colored_label(label, tooltip: tooltip), link
|
||||
end
|
||||
end
|
||||
|
||||
@@ -50,23 +50,24 @@ module LabelsHelper
|
||||
@project.labels.pluck(:title)
|
||||
end
|
||||
|
||||
def render_colored_label(label, label_suffix = '')
|
||||
def render_colored_label(label, label_suffix = '', tooltip: true)
|
||||
label_color = label.color || Label::DEFAULT_COLOR
|
||||
text_color = text_color_for_bg(label_color)
|
||||
|
||||
# Intentionally not using content_tag here so that this method can be called
|
||||
# by LabelReferenceFilter
|
||||
span = %(<span class="label color-label") +
|
||||
%(style="background-color: #{label_color}; color: #{text_color}">) +
|
||||
span = %(<span class="label color-label #{"has_tooltip" if tooltip}" ) +
|
||||
%(style="background-color: #{label_color}; color: #{text_color}" ) +
|
||||
%(title="#{escape_once(label.description)}" data-container="body">) +
|
||||
%(#{escape_once(label.name)}#{label_suffix}</span>)
|
||||
|
||||
span.html_safe
|
||||
end
|
||||
|
||||
def render_colored_cross_project_label(label)
|
||||
def render_colored_cross_project_label(label, tooltip: true)
|
||||
label_suffix = label.project.name_with_namespace
|
||||
label_suffix = " <i>in #{escape_once(label_suffix)}</i>"
|
||||
render_colored_label(label, label_suffix)
|
||||
render_colored_label(label, label_suffix, tooltip: tooltip)
|
||||
end
|
||||
|
||||
def suggested_colors
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
%li{id: dom_id(label)}
|
||||
.label-row
|
||||
= render_colored_label(label)
|
||||
= render_colored_label(label, tooltip: false)
|
||||
= markdown(label.description, pipeline: :single_line)
|
||||
.pull-right
|
||||
= link_to 'Edit', edit_admin_label_path(label), class: 'btn btn-sm'
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
%span.label-row
|
||||
= link_to_label(label)
|
||||
= link_to_label(label, tooltip: false)
|
||||
%span.prepend-left-10
|
||||
= markdown(label.description, pipeline: :single_line)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
%li
|
||||
%span.label-row
|
||||
= link_to milestones_label_path(options) do
|
||||
- render_colored_label(label)
|
||||
- render_colored_label(label, tooltip: false)
|
||||
%span.prepend-left-10
|
||||
= markdown(label.description, pipeline: :single_line)
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ describe LabelsHelper do
|
||||
end
|
||||
|
||||
it 'uses the instance variable' do
|
||||
expect(link_to_label(label)).to match %r{<a href="/#{@project.to_reference}/issues\?label_name=#{label.name}">.*</a>}
|
||||
expect(link_to_label(label)).to match %r{<a href="/#{@project.to_reference}/issues\?label_name=#{label.name}"><span class="[\w\s\-]*has_tooltip".*</span></a>}
|
||||
end
|
||||
end
|
||||
|
||||
@@ -39,6 +39,14 @@ describe LabelsHelper do
|
||||
end
|
||||
end
|
||||
|
||||
context 'with a tooltip argument' do
|
||||
context 'set to false' do
|
||||
it 'does not include the has_tooltip class' do
|
||||
expect(link_to_label(label, tooltip: false)).not_to match %r{has_tooltip}
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'with block' do
|
||||
it 'passes the block to link_to' do
|
||||
link = link_to_label(label) { 'Foo' }
|
||||
@@ -49,7 +57,7 @@ describe LabelsHelper do
|
||||
context 'without block' do
|
||||
it 'uses render_colored_label as the link content' do
|
||||
expect(self).to receive(:render_colored_label).
|
||||
with(label).and_return('Foo')
|
||||
with(label, tooltip: true).and_return('Foo')
|
||||
expect(link_to_label(label)).to match('Foo')
|
||||
end
|
||||
end
|
||||
|
||||
@@ -56,7 +56,7 @@ describe Banzai::Filter::LabelReferenceFilter, lib: true do
|
||||
describe 'label span element' do
|
||||
it 'includes default classes' do
|
||||
doc = reference_filter("Label #{reference}")
|
||||
expect(doc.css('a span').first.attr('class')).to eq 'label color-label'
|
||||
expect(doc.css('a span').first.attr('class')).to eq 'label color-label has_tooltip'
|
||||
end
|
||||
|
||||
it 'includes a style attribute' do
|
||||
|
||||
Reference in New Issue
Block a user