Move OAuth requests to fetch
This commit is contained in:
parent
90e787eed8
commit
3c4da558b0
6 changed files with 54 additions and 55 deletions
|
@ -11,7 +11,6 @@
|
||||||
//= require leaflet.zoom
|
//= require leaflet.zoom
|
||||||
//= require leaflet.locationfilter
|
//= require leaflet.locationfilter
|
||||||
//= require i18n
|
//= require i18n
|
||||||
//= require oauth
|
|
||||||
//= require matomo
|
//= require matomo
|
||||||
//= require richtext
|
//= require richtext
|
||||||
|
|
||||||
|
|
|
@ -78,6 +78,9 @@ $(document).ready(function () {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const token = $("head").data("oauthToken");
|
||||||
|
if (token) OSM.oauth = { authorization: "Bearer " + token };
|
||||||
|
|
||||||
var params = OSM.mapParams();
|
var params = OSM.mapParams();
|
||||||
|
|
||||||
map.attributionControl.setPrefix("");
|
map.attributionControl.setPrefix("");
|
||||||
|
|
|
@ -24,33 +24,36 @@ OSM.Changeset = function (map) {
|
||||||
};
|
};
|
||||||
|
|
||||||
function updateChangeset(method, url, include_data) {
|
function updateChangeset(method, url, include_data) {
|
||||||
var data;
|
const data = new URLSearchParams();
|
||||||
|
|
||||||
content.find("#comment-error").prop("hidden", true);
|
content.find("#comment-error").prop("hidden", true);
|
||||||
content.find("button[data-method][data-url]").prop("disabled", true);
|
content.find("button[data-method][data-url]").prop("disabled", true);
|
||||||
|
|
||||||
if (include_data) {
|
if (include_data) {
|
||||||
data = { text: content.find("textarea").val() };
|
data.set("text", content.find("textarea").val());
|
||||||
} else {
|
|
||||||
data = {};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$.ajax({
|
fetch(url, {
|
||||||
url: url,
|
method: method,
|
||||||
type: method,
|
headers: { ...OSM.oauth },
|
||||||
oauth: true,
|
body: data
|
||||||
data: data,
|
})
|
||||||
success: function () {
|
.then(response => {
|
||||||
|
if (response.ok) return response;
|
||||||
|
return response.text().then(text => {
|
||||||
|
throw new Error(text);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
.then(() => {
|
||||||
OSM.loadSidebarContent(window.location.pathname, page.load);
|
OSM.loadSidebarContent(window.location.pathname, page.load);
|
||||||
},
|
})
|
||||||
error: function (xhr) {
|
.catch(error => {
|
||||||
content.find("button[data-method][data-url]").prop("disabled", false);
|
content.find("button[data-method][data-url]").prop("disabled", false);
|
||||||
content.find("#comment-error")
|
content.find("#comment-error")
|
||||||
.text(xhr.responseText)
|
.text(error.message)
|
||||||
.prop("hidden", false)
|
.prop("hidden", false)
|
||||||
.get(0).scrollIntoView({ block: "nearest" });
|
.get(0).scrollIntoView({ block: "nearest" });
|
||||||
}
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function initialize() {
|
function initialize() {
|
||||||
|
|
|
@ -34,17 +34,17 @@ OSM.NewNote = function (map) {
|
||||||
});
|
});
|
||||||
|
|
||||||
function createNote(location, text, callback) {
|
function createNote(location, text, callback) {
|
||||||
$.ajax({
|
fetch("/api/0.6/notes.json?", {
|
||||||
url: "/api/0.6/notes.json",
|
method: "POST",
|
||||||
type: "POST",
|
headers: { ...OSM.oauth },
|
||||||
oauth: true,
|
body: new URLSearchParams({
|
||||||
data: {
|
|
||||||
lat: location.lat,
|
lat: location.lat,
|
||||||
lon: location.lng,
|
lon: location.lng,
|
||||||
text
|
text
|
||||||
},
|
})
|
||||||
success: callback
|
})
|
||||||
});
|
.then(response => response.json())
|
||||||
|
.then(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
function addCreatedNoteMarker(feature) {
|
function addCreatedNoteMarker(feature) {
|
||||||
|
|
|
@ -42,32 +42,38 @@ OSM.Note = function (map) {
|
||||||
function initialize(path, id) {
|
function initialize(path, id) {
|
||||||
content.find("button[name]").on("click", function (e) {
|
content.find("button[name]").on("click", function (e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var data = $(e.target).data();
|
const { url, method } = $(e.target).data(),
|
||||||
var name = $(e.target).attr("name");
|
name = $(e.target).attr("name"),
|
||||||
var ajaxSettings = {
|
data = new URLSearchParams();
|
||||||
url: data.url,
|
content.find("button[name]").prop("disabled", true);
|
||||||
type: data.method,
|
|
||||||
oauth: true,
|
if (name !== "subscribe" && name !== "unsubscribe" && name !== "reopen") {
|
||||||
success: () => {
|
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, () => {
|
OSM.loadSidebarContent(path, () => {
|
||||||
initialize(path, id);
|
initialize(path, id);
|
||||||
});
|
});
|
||||||
},
|
})
|
||||||
error: (xhr) => {
|
.catch(error => {
|
||||||
content.find("#comment-error")
|
content.find("#comment-error")
|
||||||
.text(xhr.responseText)
|
.text(error.message)
|
||||||
.prop("hidden", false)
|
.prop("hidden", false)
|
||||||
.get(0).scrollIntoView({ block: "nearest" });
|
.get(0).scrollIntoView({ block: "nearest" });
|
||||||
updateButtons();
|
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) {
|
content.find("textarea").on("input", function (e) {
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
$(document).ready(function () {
|
|
||||||
var 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;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
});
|
|
Loading…
Add table
Add a link
Reference in a new issue