]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/new_note.js
iD: listen to manual hashchanges from iframe parent
[rails.git] / app / assets / javascripts / index / new_note.js
index 9d68ab65c8fc62b2a4eb2bb1147bb3f2742b0e31..887ba043b12b00bda5478b4e2dfd3aeec305efd3 100644 (file)
@@ -1,8 +1,6 @@
-//= require querystring
+//= require qs/dist/qs
 
 OSM.NewNote = function (map) {
 
 OSM.NewNote = function (map) {
-  var querystring = require("querystring-component");
-
   var noteLayer = map.noteLayer,
       content = $("#sidebar_content"),
       page = {},
   var noteLayer = map.noteLayer,
       content = $("#sidebar_content"),
       page = {},
@@ -87,10 +85,12 @@ OSM.NewNote = function (map) {
   };
 
   function newHalo(loc, a) {
   };
 
   function newHalo(loc, a) {
-    if (a === "dragstart" && map.hasLayer(halo)) {
+    var hasHalo = halo && map.hasLayer(halo);
+
+    if (a === "dragstart" && hasHalo) {
       map.removeLayer(halo);
     } else {
       map.removeLayer(halo);
     } else {
-      if (map.hasLayer(halo)) map.removeLayer(halo);
+      if (hasHalo) map.removeLayer(halo);
 
       halo = L.circleMarker(loc, {
         weight: 2.5,
 
       halo = L.circleMarker(loc, {
         weight: 2.5,
@@ -111,7 +111,7 @@ OSM.NewNote = function (map) {
 
     map.addLayer(noteLayer);
 
 
     map.addLayer(noteLayer);
 
-    var params = querystring.parse(path.substring(path.indexOf("?") + 1));
+    var params = Qs.parse(path.substring(path.indexOf("?") + 1));
     var markerLatlng;
 
     if (params.lat && params.lon) {
     var markerLatlng;
 
     if (params.lat && params.lon) {
@@ -139,8 +139,6 @@ OSM.NewNote = function (map) {
 
     newNote.on("remove", function () {
       addNoteButton.removeClass("active");
 
     newNote.on("remove", function () {
       addNoteButton.removeClass("active");
-    }).on("dragstart", function () {
-      $(newNote).stopTime("removenote");
     }).on("dragend", function () {
       content.find("textarea").focus();
     });
     }).on("dragend", function () {
       content.find("textarea").focus();
     });
@@ -162,8 +160,8 @@ OSM.NewNote = function (map) {
   };
 
   page.unload = function () {
   };
 
   page.unload = function () {
-    noteLayer.removeLayer(newNote);
-    map.removeLayer(halo);
+    if (newNote) noteLayer.removeLayer(newNote);
+    if (halo) map.removeLayer(halo);
     addNoteButton.removeClass("active");
   };
 
     addNoteButton.removeClass("active");
   };