diff --git a/app/components/sdg/goals/icon_component.rb b/app/components/sdg/goals/icon_component.rb index 588da444f..496021afd 100644 --- a/app/components/sdg/goals/icon_component.rb +++ b/app/components/sdg/goals/icon_component.rb @@ -7,7 +7,11 @@ class SDG::Goals::IconComponent < ApplicationComponent end def image_path - "sdg/#{locale}/goal_#{code}.png" + if svg_available? + svg_path(locale) + else + png_path(locale) + end end private @@ -17,8 +21,25 @@ class SDG::Goals::IconComponent < ApplicationComponent end def locale - [*I18n.fallbacks[I18n.locale], "default"].find do |fallback| - AssetFinder.find_asset("sdg/#{fallback}/goal_#{code}.png") + @locale ||= [*I18n.fallbacks[I18n.locale], "default"].find do |fallback| + AssetFinder.find_asset(svg_path(fallback)) || + AssetFinder.find_asset(png_path(fallback)) end end + + def svg_available? + AssetFinder.find_asset(svg_path(locale)) + end + + def svg_path(locale) + "#{base_path(locale)}.svg" + end + + def png_path(locale) + "#{base_path(locale)}.png" + end + + def base_path(locale) + "sdg/#{locale}/goal_#{code}" + end end diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 6630e63f6..6904fc4d7 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -17,5 +17,6 @@ Rails.application.config.assets.precompile += %w[print.css] Rails.application.config.assets.precompile += %w[pdf_fonts.css] Rails.application.config.assets.precompile += %w[sdg/*.png] Rails.application.config.assets.precompile += %w[sdg/**/*.png] +Rails.application.config.assets.precompile += %w[sdg/**/*.svg] # Loads custom images and custom fonts before app/assets/images and app/assets/fonts