From d377e8b4f23e6bad925eb2efa904baa7e1531fa6 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Sun, 13 Sep 2015 21:58:34 +0100 Subject: [PATCH] Use picture elements to render some more graphics as SVG --- .rubocop_todo.yml | 2 +- app/helpers/user_roles_helper.rb | 10 ++++++---- app/views/layouts/_flash.html.erb | 15 ++++++++++++--- test/helpers/user_roles_helper_test.rb | 16 ++++++++-------- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 71d949dae..03c2e3d6f 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -75,7 +75,7 @@ Metrics/CyclomaticComplexity: # Offense count: 2535 # Configuration parameters: AllowURI, URISchemes. Metrics/LineLength: - Max: 694 + Max: 878 # Offense count: 628 # Configuration parameters: CountComments. diff --git a/app/helpers/user_roles_helper.rb b/app/helpers/user_roles_helper.rb index 690cccdca..2d3d49d77 100644 --- a/app/helpers/user_roles_helper.rb +++ b/app/helpers/user_roles_helper.rb @@ -6,26 +6,28 @@ module UserRolesHelper def role_icon(user, role) if @user && @user.administrator? if user.has_role?(role) - image = "roles/#{role}.png" + image = "roles/#{role}" alt = t("user.view.role.revoke.#{role}") title = t("user.view.role.revoke.#{role}") url = revoke_role_path(:display_name => user.display_name, :role => role) confirm = t("user_role.revoke.are_you_sure", :name => user.display_name, :role => role) else - image = "roles/blank_#{role}.png" + image = "roles/blank_#{role}" alt = t("user.view.role.grant.#{role}") title = t("user.view.role.grant.#{role}") url = grant_role_path(:display_name => user.display_name, :role => role) confirm = t("user_role.grant.are_you_sure", :name => user.display_name, :role => role) end elsif user.has_role?(role) - image = "roles/#{role}.png" + image = "roles/#{role}" alt = t("user.view.role.#{role}") title = t("user.view.role.#{role}") end if image - icon = image_tag(image, :size => "20x20", :border => 0, :alt => alt, :title => title) + svg_icon = tag("source", :srcset => image_path("#{image}.svg"), :type => "image/svg+xml") + png_icon = image_tag("#{image}.png", :size => "20x20", :border => 0, :alt => alt, :title => title) + icon = content_tag("picture", svg_icon + png_icon) icon = link_to(icon, url, :method => :post, :confirm => confirm) if url end diff --git a/app/views/layouts/_flash.html.erb b/app/views/layouts/_flash.html.erb index e72185101..2ba8ee95d 100644 --- a/app/views/layouts/_flash.html.erb +++ b/app/views/layouts/_flash.html.erb @@ -1,20 +1,29 @@ <% if flash[:error] %>
- <%= image_tag("notice.png", :class => "small_icon", :border => 0) %> + + " type="image/svg+xml"> + <%= image_tag("notice.png", :class => "small_icon", :border => 0) %> +
<%= flash[:error] %>
<% end %> <% if flash[:warning] %>
- <%= image_tag("notice.png", :class => "small_icon", :border => 0) %> + + " type="image/svg+xml"> + <%= image_tag("notice.png", :class => "small_icon", :border => 0) %> +
<%= flash[:warning] %>
<% end %> <% if flash[:notice] %>
- <%= image_tag("notice.png", :class => "small_icon", :border => 0) %> + + " type="image/svg+xml"> + <%= image_tag("notice.png", :class => "small_icon", :border => 0) %> +
<%= flash[:notice] %>
<% end %> diff --git a/test/helpers/user_roles_helper_test.rb b/test/helpers/user_roles_helper_test.rb index 8216a5b56..ad9a6ed63 100644 --- a/test/helpers/user_roles_helper_test.rb +++ b/test/helpers/user_roles_helper_test.rb @@ -10,17 +10,17 @@ class UserRolesHelperTest < ActionView::TestCase assert_dom_equal "", icon icon = role_icon(users(:moderator_user), "moderator") - assert_dom_equal 'This user is a moderator', icon + assert_dom_equal 'This user is a moderator', icon end def test_role_icon_administrator @user = users(:administrator_user) icon = role_icon(users(:normal_user), "moderator") - assert_dom_equal 'Grant moderator access', icon + assert_dom_equal 'Grant moderator access', icon icon = role_icon(users(:moderator_user), "moderator") - assert_dom_equal 'Revoke moderator access', icon + assert_dom_equal 'Revoke moderator access', icon end def test_role_icons_normal @@ -30,22 +30,22 @@ class UserRolesHelperTest < ActionView::TestCase assert_dom_equal " ", icons icons = role_icons(users(:moderator_user)) - assert_dom_equal ' This user is a moderator', icons + assert_dom_equal ' This user is a moderator', icons icons = role_icons(users(:super_user)) - assert_dom_equal ' This user is an administrator This user is a moderator', icons + assert_dom_equal ' This user is an administrator This user is a moderator', icons end def test_role_icons_administrator @user = users(:administrator_user) icons = role_icons(users(:normal_user)) - assert_dom_equal ' Grant administrator access Grant moderator access', icons + assert_dom_equal ' Grant administrator access Grant moderator access', icons icons = role_icons(users(:moderator_user)) - assert_dom_equal ' Grant administrator access Revoke moderator access', icons + assert_dom_equal ' Grant administrator access Revoke moderator access', icons icons = role_icons(users(:super_user)) - assert_dom_equal ' Revoke administrator access Revoke moderator access', icons + assert_dom_equal ' Revoke administrator access Revoke moderator access', icons end end -- 2.43.2