]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/index/notes.js.erb
Use the correct longitude for links when browsing changesets
[rails.git] / app / assets / javascripts / index / notes.js.erb
index 3d6cd0a5f01c52ed38b5d95ce68b9eae330fcfcb..0728907758dab6e88007e03367b4bf87ca123243 100644 (file)
@@ -37,13 +37,19 @@ $(document).ready(function () {
     if (e.layer == noteLayer) {
       map.off("moveend", loadNotes);
       noteLayer.clearLayers();
+      notes = {};
     }
   });
 
+  map.on("popupopen", function (e) {
+    $(e.popup._container).find(".comment").focus();
+  });
+
   map.on("popupclose", function (e) {
     if (newNote && e.popup == newNote._popup) {
       $(newNote).oneTime(10, "removenote", function () {
         map.removeLayer(newNote);
+        newNote = null;
       });
     }
   });
@@ -69,22 +75,22 @@ $(document).ready(function () {
   }
 
   function updateMarker(marker, feature) {
-    var icon = noteIcons[feature.properties.status];
-    var popupContent = createPopupContent(marker, feature.properties);
-
     if (marker)
     {
       marker.setIcon(noteIcons[feature.properties.status]);
-      marker._popup.setContent(popupContent);
+      marker._popup.setContent(createPopupContent(marker, feature.properties));
     }
     else
     {
       marker = L.marker(feature.geometry.coordinates.reverse(), {
-        icon: icon,
+        icon: noteIcons[feature.properties.status],
         opacity: 0.7
       });
 
-      marker.addTo(noteLayer).bindPopup(popupContent, popupOptions());
+      marker.addTo(noteLayer).bindPopup(
+        createPopupContent(marker, feature.properties),
+        popupOptions()
+      );
     }
 
     return marker;
@@ -145,17 +151,18 @@ $(document).ready(function () {
       var form = e.target.form;
 
       if ($(e.target).val() == "") {
-        $(form.close).val(I18n.t("javascripts.notes.show.close"));
+        $(form.close).val(I18n.t("javascripts.notes.show.resolve"));
         $(form.comment).prop("disabled", true);
       } else {
-        $(form.close).val(I18n.t("javascripts.notes.show.comment_and_close"));
+        $(form.close).val(I18n.t("javascripts.notes.show.comment_and_resolve"));
         $(form.comment).prop("disabled", false);
       }
     });
 
     content.find("input[type=submit]").on("click", function (e) {
       e.preventDefault();
-      updateNote(marker, e.target.form, $(e.target).data("url"));
+      var data = $(e.target).data();
+      updateNote(marker, e.target.form, data.method, data.url);
     });
 
     return content[0];
@@ -169,6 +176,7 @@ $(document).ready(function () {
     $.ajax({
       url: url,
       type: "POST",
+      oauth: true,
       data: {
         lat: location.lat,
         lon: location.lng,
@@ -176,27 +184,34 @@ $(document).ready(function () {
       },
       success: function (feature) {
         notes[feature.properties.id] = updateMarker(marker, feature);
+        newNote = null;
 
-        $(".leaflet-popup-close-button").off("click.close");
         $("#createnoteanchor").removeClass("disabled").addClass("geolink");
       }
     });
   }
 
-  function updateNote(marker, form, url) {
+  function updateNote(marker, form, method, url) {
     $(form).find("input[type=submit]").prop("disabled", true);
 
     $.ajax({
       url: url,
-      type: "POST",
+      type: method,
+      oauth: true,
       data: {
         text: $(form.text).val()
       },
       success: function (feature) {
-        var popupContent = createPopupContent(marker, feature.properties);
+        if (feature.properties.status == "hidden") {
+          noteLayer.removeLayer(marker);
+
+          delete notes[feature.properties.id];
+        } else {
+          var popupContent = createPopupContent(marker, feature.properties);
 
-        marker.setIcon(noteIcons[feature.properties.status]);
-        marker._popup.setContent(popupContent);
+          marker.setIcon(noteIcons[feature.properties.status]);
+          marker._popup.setContent(popupContent);
+        }
       }
     });
   }