From 022ea851507dc6abf1aa14c17013960f61d3a042 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Mon, 21 Jul 2025 12:44:14 +0300 Subject: [PATCH] Replace role_icon_svg_tag helper with inline_svg_tag --- app/assets/images/icons/role-star.svg | 3 +++ app/assets/stylesheets/colors.scss | 6 +++++- app/helpers/authorization_helper.rb | 3 ++- app/helpers/user_roles_helper.rb | 13 ------------- app/views/users/_role_icons.html.erb | 9 ++++++--- 5 files changed, 16 insertions(+), 18 deletions(-) create mode 100644 app/assets/images/icons/role-star.svg delete mode 100644 app/helpers/user_roles_helper.rb diff --git a/app/assets/images/icons/role-star.svg b/app/assets/images/icons/role-star.svg new file mode 100644 index 000000000..27cefb7e4 --- /dev/null +++ b/app/assets/images/icons/role-star.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/stylesheets/colors.scss b/app/assets/stylesheets/colors.scss index 47ae3c2ed..5a4907aae 100644 --- a/app/assets/stylesheets/colors.scss +++ b/app/assets/stylesheets/colors.scss @@ -1,4 +1,8 @@ -.role-icon { +svg.role-icon { + fill: currentColor; + &.inactive { + fill: var(--bs-body-bg, transparent); + } &.administrator { color: #f69e42; } diff --git a/app/helpers/authorization_helper.rb b/app/helpers/authorization_helper.rb index 549e67cb7..ebe4500fb 100644 --- a/app/helpers/authorization_helper.rb +++ b/app/helpers/authorization_helper.rb @@ -6,7 +6,8 @@ module AuthorizationHelper html << t("oauth.scopes.#{scope}") if Oauth::MODERATOR_SCOPES.include? scope html << " " - html << role_icon_svg_tag("moderator", false, t("oauth.for_roles.moderator"), ["align-text-bottom"]) + html << inline_svg_tag("icons/role-star.svg", :class => "role-icon moderator align-text-bottom", + :title => t("oauth.for_roles.moderator")) end safe_join(html) end diff --git a/app/helpers/user_roles_helper.rb b/app/helpers/user_roles_helper.rb deleted file mode 100644 index 5fd3b16fa..000000000 --- a/app/helpers/user_roles_helper.rb +++ /dev/null @@ -1,13 +0,0 @@ -module UserRolesHelper - def role_icon_svg_tag(role, blank, title, classes = []) - path_data = "M 10,2 8.125,8 2,8 6.96875,11.71875 5,18 10,14 15,18 13.03125,11.71875 18,8 11.875,8 10,2 z" - tag.svg(:width => 20, :height => 20, :class => ["role-icon", role, *classes]) do - concat tag.title(title) - concat tag.path(:d => path_data, - :fill => blank ? "none" : "currentColor", - :stroke => "currentColor", - "stroke-width" => blank ? 1.5 : 2, - "stroke-linejoin" => "round") - end - end -end diff --git a/app/views/users/_role_icons.html.erb b/app/views/users/_role_icons.html.erb index ff6da3665..ed27e2e25 100644 --- a/app/views/users/_role_icons.html.erb +++ b/app/views/users/_role_icons.html.erb @@ -1,17 +1,20 @@ <% UserRole::ALL_ROLES.each do |role| %> <% if current_user&.administrator? %> <% if @user.role?(role) %> - <%= link_to role_icon_svg_tag(role, false, t("users.show.role.revoke.#{role}")), + <%= link_to inline_svg_tag("icons/role-star.svg", :class => "role-icon #{role}", + :title => t("users.show.role.revoke.#{role}")), user_role_path(@user, role), :method => :delete, :data => { :confirm => t("user_role.revoke.are_you_sure", :name => @user.display_name, :role => role) } %> <% else %> - <%= link_to role_icon_svg_tag(role, true, t("users.show.role.grant.#{role}")), + <%= link_to inline_svg_tag("icons/role-star.svg", :class => "role-icon #{role} inactive", + :title => t("users.show.role.grant.#{role}")), user_role_path(@user, role), :method => :post, :data => { :confirm => t("user_role.grant.are_you_sure", :name => @user.display_name, :role => role) } %> <% end %> <% elsif @user.role?(role) %> - <%= role_icon_svg_tag(role, false, t("users.show.role.#{role}")) %> + <%= inline_svg_tag "icons/role-star.svg", :class => "role-icon #{role}", + :title => t("users.show.role.#{role}") %> <% end %> <% end %> -- 2.39.5