From 42762a3f3cd3b67d5062cf7208441f46e6b4c2de Mon Sep 17 00:00:00 2001 From: Marius Balteanu Date: Sat, 19 Oct 2024 10:08:14 +0000 Subject: [PATCH] @sprite_icon@ accepts plugin name as parameter to render an icon from a sprite provided by a plugin (#23980). git-svn-id: https://svn.redmine.org/redmine/trunk@23146 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/helpers/icons_helper.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/helpers/icons_helper.rb b/app/helpers/icons_helper.rb index ee1c66f3e..28661fbea 100644 --- a/app/helpers/icons_helper.rb +++ b/app/helpers/icons_helper.rb @@ -21,8 +21,10 @@ module IconsHelper DEFAULT_ICON_SIZE = "18" DEFAULT_SPRITE = "icons" - def sprite_icon(icon_name, label = nil, icon_only: false, size: DEFAULT_ICON_SIZE, css_class: nil) - svg_icon = svg_sprite_icon(icon_name, size: size, css_class: css_class) + def sprite_icon(icon_name, label = nil, icon_only: false, size: DEFAULT_ICON_SIZE, css_class: nil, sprite: DEFAULT_SPRITE, plugin: nil) + sprite = plugin ? "plugin_assets/#{plugin}/#{sprite}.svg" : "#{sprite}.svg" + + svg_icon = svg_sprite_icon(icon_name, size: size, css_class: css_class, sprite: sprite) if label label_classes = ["icon-label"] @@ -45,7 +47,7 @@ module IconsHelper end def principal_icon(principal_class, size: DEFAULT_ICON_SIZE, css_class: nil) - svg_sprite_icon('group', size: size, css_class: css_class) if ['groupanonymous', 'groupnonmember', 'group'].include?(principal_class) + sprite_icon('group', size: size, css_class: css_class) if ['groupanonymous', 'groupnonmember', 'group'].include?(principal_class) end def activity_event_type_icon(event_type, size: DEFAULT_ICON_SIZE, css_class: nil) @@ -60,19 +62,18 @@ module IconsHelper event_type end - svg_sprite_icon(icon_name, size: size, css_class: css_class) + sprite_icon(icon_name, size: size, css_class: css_class) end private def svg_sprite_icon(icon_name, size: DEFAULT_ICON_SIZE, sprite: DEFAULT_SPRITE, css_class: nil) - sprite_path = "#{sprite}.svg" css_classes = "s#{size} icon-svg" css_classes += " #{css_class}" unless css_class.nil? content_tag( :svg, - content_tag(:use, '', { 'href' => "#{asset_path(sprite_path)}#icon--#{icon_name}" }), + content_tag(:use, '', { 'href' => "#{asset_path(sprite)}#icon--#{icon_name}" }), class: css_classes, aria: { hidden: true