Permalink
Browse files

Remove the "new note" marker when the user clicks somewhere else

  • Loading branch information...
tomhughes committed Feb 5, 2013
1 parent b97fe91 commit 51dcf86f40200bf4728097868f45aa2fe12968f3
Showing with 18 additions and 7 deletions.
  1. +18 −7 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();
});
});

0 comments on commit 51dcf86

Please sign in to comment.