X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/a25b7953b3889ce6847a13c579fa9fd32219b5e3..5c019cd2eef41a4e75a2640f19f674431cf67733:/app/assets/javascripts/index.js?ds=sidebyside diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index c419f9321..9b825caad 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -21,8 +21,8 @@ //= require index/directions //= require index/changeset //= require index/query +//= require index/home //= require router -//= require qs/dist/qs $(document).ready(function () { var map = new L.OSM.Map("map", { @@ -39,30 +39,21 @@ $(document).ready(function () { $("#sidebar_loader").show().addClass("delayed-fade-in"); - // IE<10 doesn't respect Vary: X-Requested-With header, so - // prevent caching the XHR response as a full-page URL. - if (content_path.indexOf("?") >= 0) { - content_path += "&xhr=1"; - } else { - content_path += "?xhr=1"; - } - $("#sidebar_content") .empty(); - $.ajax({ - url: content_path, - dataType: "html", - complete: function (xhr) { + fetch(content_path, { headers: { "accept": "text/html", "x-requested-with": "XMLHttpRequest" } }) + .then(response => { $("#flash").empty(); $("#sidebar_loader").removeClass("delayed-fade-in").hide(); - var content = $(xhr.responseText); + const title = response.headers.get("X-Page-Title"); + if (title) document.title = decodeURIComponent(title); - if (xhr.getResponseHeader("X-Page-Title")) { - var title = xhr.getResponseHeader("X-Page-Title"); - document.title = decodeURIComponent(title); - } + return response.text(); + }) + .then(html => { + const content = $(html); $("head") .find("link[type=\"application/atom+xml\"]") @@ -76,8 +67,7 @@ $(document).ready(function () { if (callback) { callback(); } - } - }); + }); }; var params = OSM.mapParams(); @@ -98,9 +88,7 @@ $(document).ready(function () { var position = $("html").attr("dir") === "rtl" ? "topleft" : "topright"; function addControlGroup(controls) { - controls.forEach(function (control) { - control.addTo(map); - }); + for (const control of controls) control.addTo(map); var firstContainer = controls[0].getContainer(); $(firstContainer).find(".control-button").first() @@ -173,7 +161,7 @@ $(document).ready(function () { var expiry = new Date(); expiry.setYear(expiry.getFullYear() + 10); - map.on("moveend layeradd layerremove", function () { + map.on("moveend baselayerchange overlayadd overlayremove", function () { updateLinks( map.getCenter().wrap(), map.getZoom(), @@ -205,9 +193,9 @@ $(document).ready(function () { }); if (OSM.MATOMO) { - map.on("layeradd", function (e) { + map.on("baselayerchange overlayadd", function (e) { if (e.layer.options) { - var goal = OSM.MATOMO.goals[e.layer.options.keyid]; + var goal = OSM.MATOMO.goals[e.layer.options.layerId]; if (goal) { $("body").trigger("matomogoal", goal); @@ -226,49 +214,30 @@ $(document).ready(function () { L.marker([params.mlat, params.mlon]).addTo(map); } - $("#homeanchor").on("click", function (e) { - e.preventDefault(); - - var data = $(this).data(), - center = L.latLng(data.lat, data.lon); - - map.setView(center, data.zoom); - L.marker(center, { icon: OSM.getUserIcon() }).addTo(map); - }); - function remoteEditHandler(bbox, object) { var remoteEditHost = "http://127.0.0.1:8111", osmHost = location.protocol + "//" + location.host, - query = { + query = new URLSearchParams({ left: bbox.getWest() - 0.0001, top: bbox.getNorth() + 0.0001, right: bbox.getEast() + 0.0001, bottom: bbox.getSouth() - 0.0001 - }; + }); - if (object && object.type !== "note") query.select = object.type + object.id; // can't select notes - sendRemoteEditCommand(remoteEditHost + "/load_and_zoom?" + Qs.stringify(query), 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") { - var noteQuery = { url: osmHost + OSM.apiUrl(object) }; - sendRemoteEditCommand(remoteEditHost + "/import?" + Qs.stringify(noteQuery)); + const noteQuery = new URLSearchParams({ url: osmHost + OSM.apiUrl(object) }); + sendRemoteEditCommand(remoteEditHost + "/import?" + noteQuery); } }); function sendRemoteEditCommand(url, callback) { - var iframe = $("