From 51dcf86f40200bf4728097868f45aa2fe12968f3 Mon Sep 17 00:00:00 2001 From: Tom Hughes Date: Tue, 5 Feb 2013 00:30:58 +0000 Subject: [PATCH] Remove the "new note" marker when the user clicks somewhere else --- app/assets/javascripts/index/notes.js.erb | 25 ++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/index/notes.js.erb b/app/assets/javascripts/index/notes.js.erb index 9f8eb2f54..47a2dc200 100644 --- a/app/assets/javascripts/index/notes.js.erb +++ b/app/assets/javascripts/index/notes.js.erb @@ -24,6 +24,7 @@ $(document).ready(function () { var noteLayer = new L.LayerGroup(); var notes = {}; + var newNote; map.on("layeradd", function (e) { if (e.layer == noteLayer) { @@ -39,6 +40,14 @@ $(document).ready(function () { } }); + map.on("popupclose", function (e) { + if (e.popup == newNote._popup) { + $(newNote).oneTime(10, "removenote", function () { + map.removeLayer(newNote); + }); + } + }); + if (OSM.STATUS != 'api_offline' && OSM.STATUS != 'database_offline') { map.layersControl.addOverlay(noteLayer, I18n.t("browse.start_rjs.notes_layer_name")); @@ -217,7 +226,7 @@ $(document).ready(function () { markerPosition = [mapSize.x / 2, mapSize.y]; } - var marker = L.marker(map.containerPointToLatLng(markerPosition), { + newNote = L.marker(map.containerPointToLatLng(markerPosition), { icon: noteIcons["new"], opacity: 0.7, draggable: true @@ -237,18 +246,20 @@ $(document).ready(function () { popupContent.find("input[type=submit]").on("click", function (e) { e.preventDefault(); - createNote(marker, e.target.form, $(e.target).data("url")); + createNote(newNote, e.target.form, $(e.target).data("url")); }); - marker.addTo(noteLayer).bindPopup(popupContent[0], popupOptions()).openPopup(); - - $(".leaflet-popup-close-button").on("click.close", function (e) { - map.removeLayer(marker); + newNote.addTo(noteLayer).bindPopup(popupContent[0], popupOptions()).openPopup(); + newNote.on("remove", function (e) { $("#createnoteanchor").removeClass("disabled").addClass("geolink"); }); - marker.on("dragend", function (e) { + newNote.on("dragstart", function (e) { + $(newNote).stopTime("removenote"); + }); + + newNote.on("dragend", function (e) { e.target.openPopup(); }); }); -- 2.43.2