X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/d095dfe3d4c1ec90cebdfb3307564022cbeaf878..00108bc9b7e9e03a47d89343e7f53eb924977ff8:/app/assets/javascripts/index.js diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 194ed82f7..96870f600 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -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(""); @@ -233,20 +236,20 @@ $(document).ready(function () { }); if (object && object.type !== "note") query.set("select", object.type + object.id); // can't select notes - sendRemoteEditCommand(remoteEditHost + "/load_and_zoom?" + query, function () { - if (object && object.type === "note") { - const noteQuery = new URLSearchParams({ url: osmHost + OSM.apiUrl(object) }); - sendRemoteEditCommand(remoteEditHost + "/import?" + noteQuery); - } - }); + sendRemoteEditCommand(remoteEditHost + "/load_and_zoom?" + query) + .then(() => { + if (object && object.type === "note") { + const noteQuery = new URLSearchParams({ url: osmHost + OSM.apiUrl(object) }); + sendRemoteEditCommand(remoteEditHost + "/import?" + noteQuery); + } + }) + .catch(() => { + // eslint-disable-next-line no-alert + alert(I18n.t("site.index.remote_failed")); + }); - function sendRemoteEditCommand(url, callback) { - fetch(url, { mode: "no-cors", signal: AbortSignal.timeout(5000) }) - .then(callback) - .catch(function () { - // eslint-disable-next-line no-alert - alert(I18n.t("site.index.remote_failed")); - }); + function sendRemoteEditCommand(url) { + return fetch(url, { mode: "no-cors", signal: AbortSignal.timeout(5000) }); } return false; @@ -297,19 +300,19 @@ $(document).ready(function () { OSM.Browse = function (map, type) { const page = {}; - page.pushstate = page.popstate = function (path, id) { + page.pushstate = page.popstate = function (path, id, version) { OSM.loadSidebarContent(path, function () { - addObject(type, id); + addObject(type, id, version); }); }; - page.load = function (path, id) { - addObject(type, id, true); + page.load = function (path, id, version) { + addObject(type, id, version, true); }; - function addObject(type, id, center) { + function addObject(type, id, version, center) { const hashParams = OSM.parseHash(window.location.hash); - map.addObject({ type: type, id: parseInt(id, 10) }, function (bounds) { + map.addObject({ type: type, id: parseInt(id, 10), version: version && parseInt(version, 10) }, function (bounds) { if (!hashParams.center && bounds.isValid() && (center || !map.getBounds().contains(bounds))) { OSM.router.withoutMoveListener(function () { @@ -350,7 +353,7 @@ $(document).ready(function () { "/user/:display_name/history": history, "/note/:id": OSM.Note(map), "/node/:id(/history)": OSM.Browse(map, "node"), - "/node/:id/history/:version": OSM.OldBrowse(), + "/node/:id/history/:version": OSM.Browse(map, "node"), "/way/:id(/history)": OSM.Browse(map, "way"), "/way/:id/history/:version": OSM.OldBrowse(), "/relation/:id(/history)": OSM.Browse(map, "relation"),