summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarius Balteanu <marius.balteanu@zitec.com>2024-11-29 07:58:59 +0000
committerMarius Balteanu <marius.balteanu@zitec.com>2024-11-29 07:58:59 +0000
commit018d89bf8ac3b0f6d9f545a0aeb8cc5c3bbec56e (patch)
tree9fb8a2c0b10a0e5c59901b7cdef20cb8ef5da7b6
parentd63678068a2e31dcd9930c0f96e07dc2dcb78b6b (diff)
downloadredmine-018d89bf8ac3b0f6d9f545a0aeb8cc5c3bbec56e.tar.gz
redmine-018d89bf8ac3b0f6d9f545a0aeb8cc5c3bbec56e.zip
Fixes that group icons in Watchers box have both the old and the new icon style (#41853).
git-svn-id: https://svn.redmine.org/redmine/trunk@23328 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/assets/stylesheets/application.css5
-rw-r--r--app/helpers/application_helper.rb17
-rw-r--r--app/helpers/watchers_helper.rb2
-rw-r--r--test/helpers/application_helper_test.rb24
-rw-r--r--test/helpers/watchers_helper_test.rb30
5 files changed, 61 insertions, 17 deletions
diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
index 1c9595172..6a7449571 100644
--- a/app/assets/stylesheets/application.css
+++ b/app/assets/stylesheets/application.css
@@ -433,6 +433,8 @@ tr.version td.date, tr.version td.status, tr.version td.sharing { text-align: ce
tr.member td.icon-user, #principals_for_new_member .icon-user {background:transparent;}
#principals_for_new_member svg {margin-right: 4px;}
+#principals_for_new_member img.gravatar {margin-right: 4px;}
+#principals_for_new_member span.icon:empty { display: none; }
tr.user td {width:13%;white-space: nowrap;}
td.username, td.firstname, td.lastname, td.email {text-align:left !important;}
@@ -537,7 +539,10 @@ td.center {text-align:center;}
#watchers select {width: 95%; display: block;}
#watchers img.gravatar {margin: 0 4px 2px 0;}
+#watchers svg.icon-svg {margin: 0 2px 2px 0;}
#users_for_watcher img.gravatar {padding-bottom: 2px; margin-right: 4px;}
+#users_for_watcher svg.icon-svg {padding-bottom: 2px; margin-right: 2px;}
+#users_for_watcher span.icon:empty { display: none; }
span#watchers_inputs {overflow:auto; display:block;}
span.search_for_watchers {display:block;}
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index bac8da266..4aa233851 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -651,17 +651,12 @@ module ApplicationHelper
def principals_check_box_tags(name, principals)
s = +''
principals.each do |principal|
- s <<
- content_tag(
- 'label',
- check_box_tag(name, principal.id, false, :id => nil) +
- (avatar(principal, :size => 16).presence ||
- content_tag(
- 'span', principal_icon(principal),
- :class => "name icon icon-#{principal.class.name.downcase}"
- )
- ) + principal.to_s
- )
+ principal_check_box = +''
+ principal_check_box << check_box_tag(name, principal.id, false, :id => nil)
+ principal_check_box << avatar(principal, :size => 16).to_s if principal.is_a?(User)
+ principal_check_box << content_tag('span', principal_icon(principal), :class => "name icon icon-#{principal.class.to_s.downcase}")
+ principal_check_box << principal.to_s
+ s << content_tag('label', principal_check_box.html_safe)
end
s.html_safe
end
diff --git a/app/helpers/watchers_helper.rb b/app/helpers/watchers_helper.rb
index f7763e41b..00afd30ae 100644
--- a/app/helpers/watchers_helper.rb
+++ b/app/helpers/watchers_helper.rb
@@ -49,7 +49,7 @@ module WatchersHelper
content = ''.html_safe
lis = object.watcher_users.sorted.collect do |user|
s = ''.html_safe
- s << avatar(user, :size => "16").to_s
+ s << avatar(user, :size => "16").to_s if user.is_a?(User)
s << link_to_principal(user, class: user.class.to_s.downcase)
if object.respond_to?(:visible?) && user.is_a?(User) && !object.visible?(user)
s << content_tag('span', l(:notice_invalid_watcher), class: 'icon-only icon-warning', title: l(:notice_invalid_watcher))
diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb
index fabaa31ed..dce3c3d25 100644
--- a/test/helpers/application_helper_test.rb
+++ b/test/helpers/application_helper_test.rb
@@ -2008,18 +2008,31 @@ class ApplicationHelperTest < Redmine::HelperTest
end
def test_principals_check_box_tag_with_avatar
- principals = [User.find(1), Group.find(10)]
+ principals = [User.find(1), User.find(2)]
with_settings :gravatar_enabled => '1' do
tags = principals_check_box_tags("watcher[user_ids][]", principals)
principals.each do |principal|
assert_include avatar(principal, :size => 16), tags
- assert_not_include content_tag('span', nil, :class => "name icon icon-#{principal.class.name.downcase}"), tags
+ assert_include content_tag('span', nil, :class => "name icon icon-#{principal.class.name.downcase}"), tags
+ assert_include principal.to_s, tags
end
end
end
- def test_principals_check_box_tag_without_avatar
- principals = [User.find(1), Group.find(10)]
+ def test_principals_check_box_tag_without_avatar_when_principal_is_group
+ principals = [Group.find(10), Group.find(11)]
+ with_settings :gravatar_enabled => '1' do
+ tags = principals_check_box_tags("watcher[user_ids][]", principals)
+ principals.each do |principal|
+ assert_not_include avatar(principal, :size => 16), tags
+ assert_include content_tag('span', principal_icon(principal), :class => "name icon icon-#{principal.class.name.downcase}"), tags
+ assert_include principal.to_s, tags
+ end
+ end
+ end
+
+ def test_principals_check_box_tag_without_avatar_when_gravatar_disabled
+ principals = [User.find(1), User.find(2)]
Setting.gravatar_enabled = '1'
avatar_tags = principals.collect{|p| avatar(p, :size => 16)}
@@ -2027,7 +2040,8 @@ class ApplicationHelperTest < Redmine::HelperTest
tags = principals_check_box_tags(name, principals)
principals.each_with_index do |principal, i|
assert_not_include avatar_tags[i], tags
- assert_include content_tag('span', principal_icon(principal), :class => "name icon icon-#{principal.class.name.downcase}"), tags
+ assert_include content_tag('span', nil, :class => "name icon icon-#{principal.class.name.downcase}"), tags
+ assert_include principal.to_s, tags
end
end
end
diff --git a/test/helpers/watchers_helper_test.rb b/test/helpers/watchers_helper_test.rb
index 1d29d33d5..f1f0ff8c0 100644
--- a/test/helpers/watchers_helper_test.rb
+++ b/test/helpers/watchers_helper_test.rb
@@ -94,4 +94,34 @@ class WatchersHelperTest < Redmine::HelperTest
end
end
end
+
+ def test_watchers_list_should_include_avatar_and_user_name
+ issue = Issue.find(1)
+ Watcher.create!(:watchable => issue, :user => User.find(1))
+
+ with_settings :gravatar_enabled => '1' do
+ result = watchers_list(issue)
+ assert_select_in result, 'ul.watchers' do
+ assert_select 'li', 1
+ assert_select 'li:nth-of-type(1)>img.gravatar', 1
+ assert_select 'li:nth-of-type(1)>a[href=?]', '/users/1', text: 'Redmine Admin'
+ assert_select 'li:nth-of-type(1)>a.group>svg.icon-svg', 0
+ end
+ end
+ end
+
+ def test_watchers_list_should_include_svg_icon_and_group_name
+ issue = Issue.find(1)
+ Watcher.create!(:watchable => issue, :user => Group.find(10))
+
+ with_settings :gravatar_enabled => '1' do
+ result = watchers_list(issue)
+ assert_select_in result, 'ul.watchers' do
+ assert_select 'li', 1
+ assert_select 'li:nth-of-type(1)>a.group>svg.icon-svg', 1
+ assert_select 'li:nth-of-type(1)>a[href=?]', '/groups/10', text: 'A Team'
+ assert_select 'li:nth-of-type(1)>img.gravatar', 0
+ end
+ end
+ end
end