//= require leaflet.zoom
//= require leaflet.locationfilter
//= require i18n
-//= require oauth
//= require matomo
//= require richtext
});
};
+ const token = $("head").data("oauthToken");
+ if (token) OSM.oauth = { authorization: "Bearer " + token };
+
const params = OSM.mapParams();
map.attributionControl.setPrefix("");
};
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() {
});
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) {
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) {
+++ /dev/null
-$(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;
- }
- });
- }
-});