]> git.openstreetmap.org Git - rails.git/commitdiff
Allow to specify browse icon priorities
authorAnton Khorev <tony29@yandex.ru>
Mon, 9 Dec 2024 10:04:32 +0000 (13:04 +0300)
committerAnton Khorev <tony29@yandex.ru>
Mon, 9 Dec 2024 10:22:34 +0000 (13:22 +0300)
app/helpers/browse_helper.rb
config/browse_icons.yml
config/initializers/browse_icons.rb

index 5cc12bb007d6dd2c5a7ceace2b9b04490c1392b6..6619a1e92698d287dc838e3931da0acc13fc11cd 100644 (file)
@@ -1,6 +1,6 @@
 module BrowseHelper
   def element_icon(type, object)
-    selected_icon_data = { :filename => "#{type}.svg" }
+    selected_icon_data = { :filename => "#{type}.svg", :priority => 1 }
 
     unless object.redacted?
       target_tags = object.tags.find_all { |k, _v| BROWSE_ICONS.key? k }.sort
@@ -8,7 +8,7 @@ module BrowseHelper
 
       target_tags.each do |k, v|
         icon_data = BROWSE_ICONS[k][v] || BROWSE_ICONS[k][:*]
-        selected_icon_data = icon_data if icon_data
+        selected_icon_data = icon_data if icon_data && icon_data[:priority] > selected_icon_data[:priority]
       end
     end
 
index d59c236825c7fbda24c288d69257a56b76ce4133..f24d7676c6ccbb96ca9350f9a92f718b90ee190c 100644 (file)
@@ -144,7 +144,7 @@ railway:
   tram: { filename: "tram.20.png" }
 
 shop:
-  :*: { filename: "shop_convenience.p.16.png" }
+  :*: { filename: "shop_convenience.p.16.png", priority: 20 }
   alcohol: { filename: "shop_alcohol.16.png" }
   bakery: { filename: "shop_bakery.16.png" }
   bicycle: { filename: "shop_bicycle.16.png" }
index cb53848e8c4097d7034ea5bdb1f8db8a1559fa29..a55df97b6f281ce793133939b14a1ccdadcc8863 100644 (file)
@@ -2,7 +2,9 @@ begin
   BROWSE_ICONS = YAML.load_file(Rails.root.join("config/browse_icons.yml")).transform_values do |tag_key_data|
     transformed_tag_key_data = {}
     tag_key_data.each do |tag_value, tag_value_data|
-      transformed_tag_key_data[tag_value] = tag_value_data.deep_symbolize_keys
+      tag_value_data = tag_value_data.deep_symbolize_keys
+      tag_value_data[:priority] ||= tag_value == :* ? 10 : 100
+      transformed_tag_key_data[tag_value] = tag_value_data
     end
     transformed_tag_key_data
   end