X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/eebe1f1d3ed885e94725c07d24e0483f603f03da..ff05871e8a431b441b1cb25e8356f0f756c9918e:/app/assets/javascripts/leaflet.note.js diff --git a/app/assets/javascripts/leaflet.note.js b/app/assets/javascripts/leaflet.note.js index 68e09c88d..19fc9392c 100644 --- a/app/assets/javascripts/leaflet.note.js +++ b/app/assets/javascripts/leaflet.note.js @@ -2,28 +2,35 @@ L.OSM.note = function (options) { var control = L.control(options); control.onAdd = function (map) { - var $container = $('
') - .attr('class', 'control-note'); - - $('') - .attr('class', 'control-button') - .attr('href', '#') - .attr('title', 'Notes') - .html('') - .on('click', toggle) + var $container = $("
") + .attr("class", "control-note"); + + var link = $("") + .attr("class", "control-button") + .attr("href", "#") + .html("") .appendTo($container); - function toggle(e) { - e.stopPropagation(); - e.preventDefault(); + map.on("zoomend", update); + + function update() { + var wasDisabled = link.hasClass("disabled"), + isDisabled = OSM.STATUS === "database_offline" || map.getZoom() < 12; + link + .toggleClass("disabled", isDisabled) + .attr("data-bs-original-title", I18n.t(isDisabled ? + "javascripts.site.createnote_disabled_tooltip" : + "javascripts.site.createnote_tooltip")); - if (map.hasLayer(map.noteLayer)) { - map.removeLayer(map.noteLayer); - } else { - map.addLayer(map.noteLayer); + if (isDisabled && !wasDisabled) { + link.trigger("disabled"); + } else if (wasDisabled && !isDisabled) { + link.trigger("enabled"); } } + update(); + return $container[0]; };