]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/5685'
authorTom Hughes <tom@compton.nu>
Sun, 16 Feb 2025 13:18:14 +0000 (13:18 +0000)
committerTom Hughes <tom@compton.nu>
Sun, 16 Feb 2025 13:18:14 +0000 (13:18 +0000)
1  2 
app/assets/javascripts/application.js
app/assets/javascripts/index.js
app/assets/javascripts/index/changeset.js
app/assets/javascripts/index/new_note.js
app/assets/javascripts/index/note.js

Simple merge
index 4903703cd39d4635d1afdef7bbd8370091cea4ad,0d235834d2ce97ab150ba18ad26261a96aa24260..0fa85a0cc09295177fa1a7d3b8c9a62e742c61b4
@@@ -78,7 -78,10 +78,10 @@@ $(document).ready(function () 
        });
    };
  
 -  var params = OSM.mapParams();
+   const token = $("head").data("oauthToken");
+   if (token) OSM.oauth = { authorization: "Bearer " + token };
 +  const params = OSM.mapParams();
  
    map.attributionControl.setPrefix("");
  
index 73fcda97c5e9421c99daf2ae4d7b92b794f0b3f9,6b24be07d28a20e6eebd37ed960d85667af7cd93..b1457d10b0233a745b5e9c4a2736637bcfe63834
@@@ -34,11 -34,10 +34,10 @@@ OSM.NewNote = function (map) 
    });
  
    function createNote(location, text, callback) {
-     $.ajax({
-       url: "/api/0.6/notes.json",
-       type: "POST",
-       oauth: true,
-       data: {
 -    fetch("/api/0.6/notes.json?", {
++    fetch("/api/0.6/notes.json", {
+       method: "POST",
+       headers: { ...OSM.oauth },
+       body: new URLSearchParams({
          lat: location.lat,
          lon: location.lng,
          text
index 466a5451e8c8da83e54f81b5410242c9278b6e1b,db5a62456b5a636c59f2c47944c3f1616827fb06..b9310a1af9e159d159dcef7254988d8623dc3983
@@@ -33,23 -39,37 +33,37 @@@ OSM.Note = function (map) 
      initialize(path, id);
    };
  
 -  function initialize(path, id) {
 +  function initialize(path, id, skipMoveToNote) {
      content.find("button[name]").on("click", function (e) {
        e.preventDefault();
-       const data = $(e.target).data();
-       const name = $(e.target).attr("name");
-       const ajaxSettings = {
-         url: data.url,
-         type: data.method,
-         oauth: true,
-         success: () => {
+       const { url, method } = $(e.target).data(),
+             name = $(e.target).attr("name"),
+             data = new URLSearchParams();
+       content.find("button[name]").prop("disabled", true);
+       if (name !== "subscribe" && name !== "unsubscribe" && name !== "reopen") {
+         data.set("text", content.find("textarea").val());
+       }
+       fetch(url, {
+         method: method,
+         headers: { ...OSM.oauth },
+         body: data
+       })
+         .then(response => {
+           if (response.ok) return response;
+           return response.text().then(text => {
+             throw new Error(text);
+           });
+         })
+         .then(() => {
            OSM.loadSidebarContent(path, () => {
 -            initialize(path, id);
 +            initialize(path, id, false);
            });
-         },
-         error: (xhr) => {
+         })
+         .catch(error => {
            content.find("#comment-error")
-             .text(xhr.responseText)
+             .text(error.message)
              .prop("hidden", false)
              .get(0).scrollIntoView({ block: "nearest" });
            updateButtons();