]> git.openstreetmap.org Git - rails.git/commitdiff
Put map key presence in js layer definitions
authorMarwin Hochfelsner <50826859+hlfan@users.noreply.github.com>
Thu, 10 Apr 2025 18:52:59 +0000 (20:52 +0200)
committerMarwin Hochfelsner <50826859+hlfan@users.noreply.github.com>
Sat, 12 Apr 2025 12:59:16 +0000 (14:59 +0200)
app/assets/javascripts/leaflet.key.js
app/assets/javascripts/osm.js.erb
lib/map_layers.rb

index a5d7acb430507b98e4ef7c96608bc69f0f835abf..b432bcf8fce059381fe875ddb49f0045f285e0e2 100644 (file)
@@ -27,7 +27,7 @@ L.OSM.key = function (options) {
     }
 
     function updateButton() {
     }
 
     function updateButton() {
-      const disabled = OSM.LAYERS_WITH_MAP_KEY.indexOf(map.getMapBaseLayerId()) === -1;
+      const disabled = !map.getMapBaseLayer().options.hasLegend;
       button
         .toggleClass("disabled", disabled)
         .attr("data-bs-original-title",
       button
         .toggleClass("disabled", disabled)
         .attr("data-bs-original-title",
index d73d1c16302d5c9b64017a885b4e07a04f2d90b9..31f92da84a846644e9e99fe2c653dc18bc983a9b 100644 (file)
@@ -27,8 +27,7 @@ OSM = {
 
   DEFAULT_LOCALE: <%= I18n.default_locale.to_json %>,
 
 
   DEFAULT_LOCALE: <%= I18n.default_locale.to_json %>,
 
-  LAYER_DEFINITIONS: <%= MapLayers::full_definitions("config/layers.yml").to_json %>,
-  LAYERS_WITH_MAP_KEY: <%= YAML.load_file(Rails.root.join("config/key.yml")).keys.to_json %>,
+  LAYER_DEFINITIONS: <%= MapLayers::full_definitions("config/layers.yml", :legends => "config/key.yml").to_json %>,
 
   MARKER_BLUE: <%= image_path("marker-blue.png").to_json %>,
   MARKER_GREEN: <%= image_path("marker-green.png").to_json %>,
 
   MARKER_BLUE: <%= image_path("marker-blue.png").to_json %>,
   MARKER_GREEN: <%= image_path("marker-green.png").to_json %>,
index 8a1bdea79789a02f23545f6d15ea42a999aaef55..f0727ed927bf528b843a4bc77c0bb4e1a7bf96f4 100644 (file)
@@ -1,5 +1,6 @@
 module MapLayers
 module MapLayers
-  def self.full_definitions(layers_filename)
+  def self.full_definitions(layers_filename, legends: nil)
+    legended_layers = YAML.load_file(Rails.root.join(legends)).keys if legends
     YAML.load_file(Rails.root.join(layers_filename))
         .reject { |layer| layer["apiKeyId"] && !Settings[layer["apiKeyId"]] }
         .map do |layer|
     YAML.load_file(Rails.root.join(layers_filename))
         .reject { |layer| layer["apiKeyId"] && !Settings[layer["apiKeyId"]] }
         .map do |layer|
@@ -7,6 +8,7 @@ module MapLayers
             layer["apikey"] = Settings[layer["apiKeyId"]]
             layer.delete "apiKeyId"
           end
             layer["apikey"] = Settings[layer["apiKeyId"]]
             layer.delete "apiKeyId"
           end
+          layer["hasLegend"] = true if legended_layers&.include?(layer["layerId"])
           layer
         end
   end
           layer
         end
   end