});
};
+ const token = $("head").data("oauthToken");
+ if (token) OSM.oauth = { authorization: "Bearer " + token };
+
const params = OSM.mapParams();
map.attributionControl.setPrefix("");
});
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;
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 () {
"/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"),