X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/71e7208a0aceccf47edce739803130096999da5d..bc70cae711fb6947233d6a750cb33f115aa7a01b:/app/assets/javascripts/leaflet.key.js?ds=inline diff --git a/app/assets/javascripts/leaflet.key.js b/app/assets/javascripts/leaflet.key.js index 238d70c5f..f89ae0c3d 100644 --- a/app/assets/javascripts/leaflet.key.js +++ b/app/assets/javascripts/leaflet.key.js @@ -1,21 +1,11 @@ L.OSM.key = function (options) { - var control = L.OSM.sidebarPane(options); - - control.onAdd = function (map) { - var $container = $("
") - .attr("class", "control-key"); - - var button = this.makeButton("key", null, toggle) - .appendTo($container); - - var $ui = this.makeUI("key-ui", "javascripts.key.title", toggle); + var control = L.OSM.sidebarPane(options, "key", null, "javascripts.key.title"); + control.onAddPane = function (map, button, $ui) { var $section = $("
") - .attr("class", "section") + .attr("class", "p-3") .appendTo($ui); - options.sidebar.addPane($ui); - $ui .on("show", shown) .on("hide", hidden); @@ -33,17 +23,8 @@ L.OSM.key = function (options) { map.off("zoomend baselayerchange", update); } - function toggle(e) { - e.stopPropagation(); - e.preventDefault(); - if (!button.hasClass("disabled")) { - options.sidebar.togglePane($ui, button); - } - $(".leaflet-control .control-button").tooltip("hide"); - } - function updateButton() { - var disabled = ["mapnik", "cyclemap"].indexOf(map.getMapBaseLayerId()) === -1; + var disabled = OSM.LAYERS_WITH_MAP_KEY.indexOf(map.getMapBaseLayerId()) === -1; button .toggleClass("disabled", disabled) .attr("data-bs-original-title", @@ -58,15 +39,13 @@ L.OSM.key = function (options) { $(".mapkey-table-entry").each(function () { var data = $(this).data(); - if (layer === data.layer && zoom >= data.zoomMin && zoom <= data.zoomMax) { - $(this).show(); - } else { - $(this).hide(); - } + $(this).toggle( + layer === data.layer && + (!data.zoomMin || zoom >= data.zoomMin) && + (!data.zoomMax || zoom <= data.zoomMax) + ); }); } - - return $container[0]; }; return control;