]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/new_note.js
Move create note callback to button click handler
[rails.git] / app / assets / javascripts / index / new_note.js
index 7a82c5bc69512f362425e1663b4744c414dc576b..f50357158b0eb24a9268fba13b6c2048a0e147d0 100644 (file)
@@ -35,34 +35,23 @@ OSM.NewNote = function (map) {
     OSM.router.route("/note/new");
   });
 
-  function createNote(marker, form, url) {
+  function createNote(marker, text, callback) {
     var location = marker.getLatLng().wrap();
 
     marker.options.draggable = false;
     marker.dragging.disable();
 
     $.ajax({
-      url: url,
+      url: "/api/0.6/notes.json",
       type: "POST",
       oauth: true,
       data: {
         lat: location.lat,
         lon: location.lng,
-        text: $(form.text).val()
+        text
       },
-      success: function (feature) {
-        noteCreated(feature, marker);
-      }
+      success: callback
     });
-
-    function noteCreated(feature, marker) {
-      content.find("textarea").val("");
-      updateMarker(feature);
-      newNoteMarker = null;
-      noteLayer.removeLayer(marker);
-      addNoteButton.removeClass("active");
-      OSM.router.route("/note/" + feature.properties.id);
-    }
   }
 
   function updateMarker(feature) {
@@ -150,9 +139,18 @@ OSM.NewNote = function (map) {
     }
 
     content.find("input[type=submit]").on("click", function (e) {
+      const text = content.find("textarea").val();
+
       e.preventDefault();
       $(this).prop("disabled", true);
-      createNote(newNoteMarker, e.target.form, "/api/0.6/notes.json");
+      createNote(newNoteMarker, text, (feature) => {
+        content.find("textarea").val("");
+        updateMarker(feature);
+        noteLayer.removeLayer(newNoteMarker);
+        newNoteMarker = null;
+        addNoteButton.removeClass("active");
+        OSM.router.route("/note/" + feature.properties.id);
+      });
     });
 
     return map.getState();