diff options
author | Tim Zallmann <tzallmann@gitlab.com> | 2017-11-09 12:38:00 +0300 |
---|---|---|
committer | Tim Zallmann <tzallmann@gitlab.com> | 2017-11-09 12:38:00 +0300 |
commit | 25eea058335ed0149621fb7470c9e8db5a24b481 (patch) | |
tree | 6d811a8c91fa38fc80b3f1d996b6a5e1903328f0 /app/helpers/icons_helper.rb | |
parent | 20ac30a705f4edd22efd934ecf68b58557f868db (diff) |
Icon Sprite URL is also local even if asset_host is set
Diffstat (limited to 'app/helpers/icons_helper.rb')
-rw-r--r-- | app/helpers/icons_helper.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/app/helpers/icons_helper.rb b/app/helpers/icons_helper.rb index ec779c1c447..fcd41b798a1 100644 --- a/app/helpers/icons_helper.rb +++ b/app/helpers/icons_helper.rb @@ -1,5 +1,6 @@ module IconsHelper extend self + include Gitlab::CurrentSettings include FontAwesome::Rails::IconHelper # Creates an icon tag given icon name(s) and possible icon modifiers. @@ -23,10 +24,17 @@ module IconsHelper render "shared/icons/#{icon_name}.svg", size: size end + def sprite_icon_path + # SVG Sprites currently don't work across domains, so in the case of a CDN + # we have to set the current path deliberately to prevent addition of asset_host + sprite_base_url = ActionController::Base.asset_host.present? ? Gitlab.config.gitlab.url : nil + ActionController::Base.helpers.image_path('icons.svg', host: sprite_base_url) + end + def sprite_icon(icon_name, size: nil, css_class: nil) css_classes = size ? "s#{size}" : "" css_classes << " #{css_class}" unless css_class.blank? - content_tag(:svg, content_tag(:use, "", { "xlink:href" => "#{image_path('icons.svg')}##{icon_name}" } ), class: css_classes.empty? ? nil : css_classes) + content_tag(:svg, content_tag(:use, "", { "xlink:href" => "#{sprite_icon_path()}##{icon_name}" } ), class: css_classes.empty? ? nil : css_classes) end def audit_icon(names, options = {}) |