mirror of
https://github.com/redmine/redmine.git
synced 2025-11-13 08:46:01 +01:00
@principal_icon@ method should accept a Principal as argument (#23980).
git-svn-id: https://svn.redmine.org/redmine/trunk@23230 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -76,7 +76,7 @@ module ApplicationHelper
|
|||||||
end
|
end
|
||||||
|
|
||||||
css_classes += " #{options[:class]}" if css_classes && options[:class].present?
|
css_classes += " #{options[:class]}" if css_classes && options[:class].present?
|
||||||
url ? link_to(principal_icon(principal.class.name.downcase).to_s + name, url, :class => css_classes) : h(name)
|
url ? link_to(principal_icon(principal).to_s + name, url, :class => css_classes) : h(name)
|
||||||
end
|
end
|
||||||
|
|
||||||
# Displays a link to edit group page if current user is admin
|
# Displays a link to edit group page if current user is admin
|
||||||
@@ -657,7 +657,7 @@ module ApplicationHelper
|
|||||||
check_box_tag(name, principal.id, false, :id => nil) +
|
check_box_tag(name, principal.id, false, :id => nil) +
|
||||||
(avatar(principal, :size => 16).presence ||
|
(avatar(principal, :size => 16).presence ||
|
||||||
content_tag(
|
content_tag(
|
||||||
'span', principal_icon(principal.class.name.downcase),
|
'span', principal_icon(principal),
|
||||||
:class => "name icon icon-#{principal.class.name.downcase}"
|
:class => "name icon icon-#{principal.class.name.downcase}"
|
||||||
)
|
)
|
||||||
) + principal.to_s
|
) + principal.to_s
|
||||||
|
|||||||
@@ -45,7 +45,10 @@ module IconsHelper
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def principal_icon(principal_class, **options)
|
def principal_icon(principal, **options)
|
||||||
|
raise ArgumentError, "First argument has to be a Principal, was #{principal.inspect}" unless principal.is_a?(Principal)
|
||||||
|
|
||||||
|
principal_class = principal.class.name.downcase
|
||||||
sprite_icon('group', **options) if ['groupanonymous', 'groupnonmember', 'group'].include?(principal_class)
|
sprite_icon('group', **options) if ['groupanonymous', 'groupnonmember', 'group'].include?(principal_class)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
<% next if member.new_record? %>
|
<% next if member.new_record? %>
|
||||||
<tr id="member-<%= member.id %>" class="member">
|
<tr id="member-<%= member.id %>" class="member">
|
||||||
<td class="name icon icon-<%= member.principal.class.name.downcase %>">
|
<td class="name icon icon-<%= member.principal.class.name.downcase %>">
|
||||||
<%= principal_icon(member.principal.class.name.downcase) %>
|
<%= principal_icon(member.principal) %>
|
||||||
<%= link_to_user member.principal %>
|
<%= link_to_user member.principal %>
|
||||||
</td>
|
</td>
|
||||||
<td class="roles">
|
<td class="roles">
|
||||||
|
|||||||
@@ -2027,7 +2027,7 @@ class ApplicationHelperTest < Redmine::HelperTest
|
|||||||
tags = principals_check_box_tags(name, principals)
|
tags = principals_check_box_tags(name, principals)
|
||||||
principals.each_with_index do |principal, i|
|
principals.each_with_index do |principal, i|
|
||||||
assert_not_include avatar_tags[i], tags
|
assert_not_include avatar_tags[i], tags
|
||||||
assert_include content_tag('span', principal_icon(principal.class.name.downcase), :class => "name icon icon-#{principal.class.name.downcase}"), tags
|
assert_include content_tag('span', principal_icon(principal), :class => "name icon icon-#{principal.class.name.downcase}"), tags
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ require_relative '../test_helper'
|
|||||||
class IconsHelperTest < Redmine::HelperTest
|
class IconsHelperTest < Redmine::HelperTest
|
||||||
include IconsHelper
|
include IconsHelper
|
||||||
|
|
||||||
|
fixtures :users
|
||||||
|
|
||||||
def test_sprite_icon_should_return_svg_with_defaults
|
def test_sprite_icon_should_return_svg_with_defaults
|
||||||
expected = %r{<svg class="s18 icon-svg" aria-hidden="true"><use href="/assets/icons-\w+.svg#icon--edit"></use></svg>$}
|
expected = %r{<svg class="s18 icon-svg" aria-hidden="true"><use href="/assets/icons-\w+.svg#icon--edit"></use></svg>$}
|
||||||
icon = sprite_icon('edit')
|
icon = sprite_icon('edit')
|
||||||
@@ -98,8 +100,8 @@ class IconsHelperTest < Redmine::HelperTest
|
|||||||
def test_principal_icon_should_return_group_icon_for_group_classes
|
def test_principal_icon_should_return_group_icon_for_group_classes
|
||||||
expected = %r{<svg class="s18 icon-svg" aria-hidden="true"><use href="/assets/icons-\w+.svg#icon--group"></use></svg>}
|
expected = %r{<svg class="s18 icon-svg" aria-hidden="true"><use href="/assets/icons-\w+.svg#icon--group"></use></svg>}
|
||||||
|
|
||||||
%w(groupanonymous groupnonmember group).each do |principal_class|
|
[Principal.find(12), Principal.find(13), Principal.find(10)].each do |principal|
|
||||||
assert_match expected, principal_icon(principal_class)
|
assert_match expected, principal_icon(principal)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user