]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/new_note.js
Added error handling for data layer
[rails.git] / app / assets / javascripts / index / new_note.js
index 73d6198ba8f7832dbaf66ef7e7747227d33f008e..4f38f8b55754267eab293788c51793df986a3064 100644 (file)
@@ -107,12 +107,19 @@ OSM.NewNote = function (map) {
     newNoteMarker = null;
   }
 
+  function moveNewNotMarkerToClick(e) {
+    if (newNoteMarker) newNoteMarker.setLatLng(e.latlng);
+    if (halo) halo.setLatLng(e.latlng);
+    content.find("textarea").focus();
+  }
+
   function updateControls() {
     const zoomedOut = addNoteButton.hasClass("disabled");
     const withoutText = content.find("textarea").val() === "";
 
     content.find("#new-note-zoom-warning").prop("hidden", !zoomedOut);
     content.find("input[type=submit]").prop("disabled", zoomedOut || withoutText);
+    if (newNoteMarker) newNoteMarker.setOpacity(zoomedOut ? 0.5 : 0.9);
   }
 
   page.pushstate = page.popstate = function (path) {
@@ -155,12 +162,17 @@ OSM.NewNote = function (map) {
       newNoteMarker.dragging.disable();
 
       createNote(location, text, (feature) => {
+        if (typeof OSM.user === "undefined") {
+          var anonymousNotesCount = Number(Cookies.get("_osm_anonymous_notes_count")) || 0;
+          Cookies.set("_osm_anonymous_notes_count", anonymousNotesCount + 1, { secure: true, expires: 30, path: "/", samesite: "lax" });
+        }
         content.find("textarea").val("");
         addCreatedNoteMarker(feature);
         OSM.router.route("/note/" + feature.properties.id);
       });
     });
 
+    map.on("click", moveNewNotMarkerToClick);
     addNoteButton.on("disabled enabled", updateControls);
     updateControls();
 
@@ -168,6 +180,7 @@ OSM.NewNote = function (map) {
   };
 
   page.unload = function () {
+    map.off("click", moveNewNotMarkerToClick);
     addNoteButton.off("disabled enabled", updateControls);
     removeNewNoteMarker();
     addNoteButton.removeClass("active");