From b06cc0ede70d20140ec6b5327862ebc734fd6bef Mon Sep 17 00:00:00 2001 From: Marwin Hochfelsner <50826859+hlfan@users.noreply.github.com> Date: Sat, 12 Jul 2025 21:13:34 +0200 Subject: [PATCH] Store routing icons separately --- Gemfile | 3 + Gemfile.lock | 4 + app/assets/images/routing/destination.svg | 3 + .../images/routing/end-of-road-right.svg | 4 + app/assets/images/routing/exit-right.svg | 4 + app/assets/images/routing/ferry.svg | 5 ++ app/assets/images/routing/fork-right.svg | 4 + app/assets/images/routing/merge-right.svg | 4 + app/assets/images/routing/right.svg | 3 + app/assets/images/routing/roundabout.svg | 3 + app/assets/images/routing/sharp-right.svg | 3 + app/assets/images/routing/slight-right.svg | 3 + app/assets/images/routing/start.svg | 3 + app/assets/images/routing/straight.svg | 3 + app/assets/images/routing/u-turn-right.svg | 3 + app/views/directions/show.html.erb | 85 +++---------------- config/initializers/inline_svg.rb | 13 +++ 17 files changed, 76 insertions(+), 74 deletions(-) create mode 100644 app/assets/images/routing/destination.svg create mode 100644 app/assets/images/routing/end-of-road-right.svg create mode 100644 app/assets/images/routing/exit-right.svg create mode 100644 app/assets/images/routing/ferry.svg create mode 100644 app/assets/images/routing/fork-right.svg create mode 100644 app/assets/images/routing/merge-right.svg create mode 100644 app/assets/images/routing/right.svg create mode 100644 app/assets/images/routing/roundabout.svg create mode 100644 app/assets/images/routing/sharp-right.svg create mode 100644 app/assets/images/routing/slight-right.svg create mode 100644 app/assets/images/routing/start.svg create mode 100644 app/assets/images/routing/straight.svg create mode 100644 app/assets/images/routing/u-turn-right.svg create mode 100644 config/initializers/inline_svg.rb diff --git a/Gemfile b/Gemfile index ef0806d50..793ae931b 100644 --- a/Gemfile +++ b/Gemfile @@ -136,6 +136,9 @@ gem "aws-sdk-s3" # Used to resize user images gem "image_processing" +# Used to manage svg files +gem "inline_svg" + # Used to validate widths gem "unicode-display_width" diff --git a/Gemfile.lock b/Gemfile.lock index b0ec61265..56d90ca13 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -341,6 +341,9 @@ GEM image_size (3.4.0) in_threads (1.6.0) iniparse (1.5.0) + inline_svg (1.10.0) + activesupport (>= 3.0) + nokogiri (>= 1.6) io-console (0.8.1) irb (1.15.2) pp (>= 0.6.0) @@ -738,6 +741,7 @@ DEPENDENCIES i18n-tasks image_optim_rails image_processing + inline_svg jbuilder (~> 2.7) jquery-rails json diff --git a/app/assets/images/routing/destination.svg b/app/assets/images/routing/destination.svg new file mode 100644 index 000000000..f73e0ff69 --- /dev/null +++ b/app/assets/images/routing/destination.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/images/routing/end-of-road-right.svg b/app/assets/images/routing/end-of-road-right.svg new file mode 100644 index 000000000..74b70e7bd --- /dev/null +++ b/app/assets/images/routing/end-of-road-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/assets/images/routing/exit-right.svg b/app/assets/images/routing/exit-right.svg new file mode 100644 index 000000000..263a7d69c --- /dev/null +++ b/app/assets/images/routing/exit-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/assets/images/routing/ferry.svg b/app/assets/images/routing/ferry.svg new file mode 100644 index 000000000..0c542cc6d --- /dev/null +++ b/app/assets/images/routing/ferry.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/app/assets/images/routing/fork-right.svg b/app/assets/images/routing/fork-right.svg new file mode 100644 index 000000000..c08be094d --- /dev/null +++ b/app/assets/images/routing/fork-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/assets/images/routing/merge-right.svg b/app/assets/images/routing/merge-right.svg new file mode 100644 index 000000000..a28f83157 --- /dev/null +++ b/app/assets/images/routing/merge-right.svg @@ -0,0 +1,4 @@ + + + + diff --git a/app/assets/images/routing/right.svg b/app/assets/images/routing/right.svg new file mode 100644 index 000000000..ba69e8ec1 --- /dev/null +++ b/app/assets/images/routing/right.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/images/routing/roundabout.svg b/app/assets/images/routing/roundabout.svg new file mode 100644 index 000000000..fa23cad17 --- /dev/null +++ b/app/assets/images/routing/roundabout.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/images/routing/sharp-right.svg b/app/assets/images/routing/sharp-right.svg new file mode 100644 index 000000000..42c0b3600 --- /dev/null +++ b/app/assets/images/routing/sharp-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/images/routing/slight-right.svg b/app/assets/images/routing/slight-right.svg new file mode 100644 index 000000000..31fed0d9d --- /dev/null +++ b/app/assets/images/routing/slight-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/images/routing/start.svg b/app/assets/images/routing/start.svg new file mode 100644 index 000000000..a7baac371 --- /dev/null +++ b/app/assets/images/routing/start.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/images/routing/straight.svg b/app/assets/images/routing/straight.svg new file mode 100644 index 000000000..aad1ae1f7 --- /dev/null +++ b/app/assets/images/routing/straight.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/assets/images/routing/u-turn-right.svg b/app/assets/images/routing/u-turn-right.svg new file mode 100644 index 000000000..5c3184979 --- /dev/null +++ b/app/assets/images/routing/u-turn-right.svg @@ -0,0 +1,3 @@ + + + diff --git a/app/views/directions/show.html.erb b/app/views/directions/show.html.erb index 82ed72df2..b460506cc 100644 --- a/app/views/directions/show.html.erb +++ b/app/views/directions/show.html.erb @@ -1,79 +1,16 @@ <% content_for(:content_class) { "overlay-sidebar" } %> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + <% Rails.root.glob("app/assets/images/routing/*.svg") + .map { |path| File.basename(path, ".svg") } + .each do |icon| %> + <%= inline_svg_tag "routing/#{icon}.svg", :id => "routing-sprite-#{icon}", :to_symbol => true %> + <% if icon.end_with?("right") %> + "> + + + <% end + end %> <%= render "sidebar_header", :title => t(".title") %> diff --git a/config/initializers/inline_svg.rb b/config/initializers/inline_svg.rb new file mode 100644 index 000000000..9a117b13e --- /dev/null +++ b/config/initializers/inline_svg.rb @@ -0,0 +1,13 @@ +module OpenStreetMap + class SvgToSymbolTransform < InlineSvg::CustomTransformation + def transform(doc) + with_svg(doc) do |svg| + svg.name = "symbol" + end + end + end +end + +InlineSvg.configure do |config| + config.add_custom_transformation(:attribute => :to_symbol, :transform => OpenStreetMap::SvgToSymbolTransform) +end -- 2.39.5