X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/dc59b37fe1449e693fdc5d3a3873f7cad7c36e57..4ea6077ddb297bc56ce75bc62d7f371b80544166:/app/assets/javascripts/index/new_note.js diff --git a/app/assets/javascripts/index/new_note.js b/app/assets/javascripts/index/new_note.js index c1df93517..712d03dc5 100644 --- a/app/assets/javascripts/index/new_note.js +++ b/app/assets/javascripts/index/new_note.js @@ -59,31 +59,30 @@ OSM.NewNote = function (map) { marker.addTo(noteLayer); } + function addHalo(latlng) { + if (halo) map.removeLayer(halo); + + halo = L.circleMarker(latlng, { + weight: 2.5, + radius: 20, + fillOpacity: 0.5, + color: "#FF6200" + }); + + map.addLayer(halo); + } + + function removeHalo() { + if (halo) map.removeLayer(halo); + halo = null; + } + page.pushstate = page.popstate = function (path) { OSM.loadSidebarContent(path, function () { page.load(path); }); }; - function newHalo(loc, a) { - var hasHalo = halo && map.hasLayer(halo); - - if (a === "dragstart" && hasHalo) { - map.removeLayer(halo); - } else { - if (hasHalo) map.removeLayer(halo); - - halo = L.circleMarker(loc, { - weight: 2.5, - radius: 20, - fillOpacity: 0.5, - color: "#FF6200" - }); - - map.addLayer(halo); - } - } - page.load = function (path) { if (addNoteButton.hasClass("disabled")) return; if (addNoteButton.hasClass("active")) return; @@ -112,11 +111,14 @@ OSM.NewNote = function (map) { }); newNoteMarker.on("dragstart dragend", function (a) { - newHalo(newNoteMarker.getLatLng(), a.type); + removeHalo(); + if (a.type !== "dragstart") { + addHalo(newNoteMarker.getLatLng()); + } }); newNoteMarker.addTo(map); - newHalo(newNoteMarker.getLatLng()); + addHalo(newNoteMarker.getLatLng()); newNoteMarker.on("remove", function () { addNoteButton.removeClass("active"); @@ -156,7 +158,7 @@ OSM.NewNote = function (map) { page.unload = function () { if (newNoteMarker) map.removeLayer(newNoteMarker); - if (halo) map.removeLayer(halo); + removeHalo(); addNoteButton.removeClass("active"); };