]> 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)
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
app/assets/javascripts/oauth.js [deleted file]

index 4c9aa8b91ad3950dc4bfac1f7ff252a1575b930e..a3fd93e27c1daaa3cd08a5881f6d266cf6e16e1b 100644 (file)
@@ -11,7 +11,6 @@
 //= require leaflet.zoom
 //= require leaflet.locationfilter
 //= require i18n
-//= require oauth
 //= require matomo
 //= require richtext
 
index 4903703cd39d4635d1afdef7bbd8370091cea4ad..0fa85a0cc09295177fa1a7d3b8c9a62e742c61b4 100644 (file)
@@ -78,6 +78,9 @@ $(document).ready(function () {
       });
   };
 
+  const token = $("head").data("oauthToken");
+  if (token) OSM.oauth = { authorization: "Bearer " + token };
+
   const params = OSM.mapParams();
 
   map.attributionControl.setPrefix("");
index 1ec5940b2d694a6c9f9a7f576540f810041790a2..6c1c6a2df7a2df382120f7c23da38b2cf4be859f 100644 (file)
@@ -24,33 +24,36 @@ OSM.Changeset = function (map) {
   };
 
   function updateChangeset(method, url, include_data) {
-    let data;
+    const data = new URLSearchParams();
 
     content.find("#comment-error").prop("hidden", true);
     content.find("button[data-method][data-url]").prop("disabled", true);
 
     if (include_data) {
-      data = { text: content.find("textarea").val() };
-    } else {
-      data = {};
+      data.set("text", content.find("textarea").val());
     }
 
-    $.ajax({
-      url: url,
-      type: method,
-      oauth: true,
-      data: data,
-      success: function () {
+    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(window.location.pathname, page.load);
-      },
-      error: function (xhr) {
+      })
+      .catch(error => {
         content.find("button[data-method][data-url]").prop("disabled", false);
         content.find("#comment-error")
-          .text(xhr.responseText)
+          .text(error.message)
           .prop("hidden", false)
           .get(0).scrollIntoView({ block: "nearest" });
-      }
-    });
+      });
   }
 
   function initialize() {
index 73fcda97c5e9421c99daf2ae4d7b92b794f0b3f9..b1457d10b0233a745b5e9c4a2736637bcfe63834 100644 (file)
@@ -34,17 +34,17 @@ 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", {
+      method: "POST",
+      headers: { ...OSM.oauth },
+      body: new URLSearchParams({
         lat: location.lat,
         lon: location.lng,
         text
-      },
-      success: callback
-    });
+      })
+    })
+      .then(response => response.json())
+      .then(callback);
   }
 
   function addCreatedNoteMarker(feature) {
index 466a5451e8c8da83e54f81b5410242c9278b6e1b..b9310a1af9e159d159dcef7254988d8623dc3983 100644 (file)
@@ -36,32 +36,38 @@ OSM.Note = function (map) {
   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, false);
           });
-        },
-        error: (xhr) => {
+        })
+        .catch(error => {
           content.find("#comment-error")
-            .text(xhr.responseText)
+            .text(error.message)
             .prop("hidden", false)
             .get(0).scrollIntoView({ block: "nearest" });
           updateButtons();
-        }
-      };
-
-      if (name !== "subscribe" && name !== "unsubscribe" && name !== "reopen") {
-        ajaxSettings.data = { text: content.find("textarea").val() };
-      }
-
-      content.find("button[name]").prop("disabled", true);
-      $.ajax(ajaxSettings);
+        });
     });
 
     content.find("textarea").on("input", function (e) {
diff --git a/app/assets/javascripts/oauth.js b/app/assets/javascripts/oauth.js
deleted file mode 100644 (file)
index f195764..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-$(document).ready(function () {
-  const application_data = $("head").data();
-
-  if (application_data.oauthToken) {
-    $.ajaxPrefilter(function (options) {
-      if (options.oauth) {
-        options.headers = options.headers || {};
-        options.headers.Authorization = "Bearer " + application_data.oauthToken;
-      }
-    });
-  }
-});