openstreetmap-website/app/helpers/user_roles_helper.rb
Holger Jeromin 37a4fc6dd1 Add srcset to img tags inside picture elements
Some browsers (in particular Safari on iOS) don't support picture
yet but do support srcset on the img tag.
2015-09-15 08:48:50 +01:00

36 lines
1.4 KiB
Ruby

module UserRolesHelper
def role_icons(user)
UserRole::ALL_ROLES.reduce("".html_safe) { |a, e| a + " " + role_icon(user, e) }
end
def role_icon(user, role)
if @user && @user.administrator?
if user.has_role?(role)
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}"
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}"
alt = t("user.view.role.#{role}")
title = t("user.view.role.#{role}")
end
if image
svg_icon = tag("source", :srcset => image_path("#{image}.svg"), :type => "image/svg+xml")
png_icon = image_tag("#{image}.png", :srcset => image_path("#{image}.svg"), :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
icon
end
end