diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 464bbecee..4c9aa8b91 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -76,7 +76,7 @@ window.updateLinks = function (loc, zoom, layers, object) { // Disable the button group and also the buttons to avoid // inconsistent behaviour when zooming - var editDisabled = zoom < 13; + const editDisabled = zoom < 13; $("#edit_tab") .tooltip({ placement: "bottom" }) .tooltip(editDisabled ? "enable" : "disable") @@ -97,7 +97,7 @@ $(document).ready(function () { let moreItemWidth = 0; function updateHeader() { - var windowWidth = $(window).width(); + const windowWidth = $(window).width(); if (windowWidth < breakpointWidth) { $("body").addClass("small-nav"); diff --git a/app/assets/javascripts/diary_entry.js b/app/assets/javascripts/diary_entry.js index bd5fd4dd6..e55d0900d 100644 --- a/app/assets/javascripts/diary_entry.js +++ b/app/assets/javascripts/diary_entry.js @@ -1,5 +1,5 @@ $(document).ready(function () { - var marker, map; + let marker, map; function setLocation(e) { const latlng = e.latlng.wrap(); @@ -21,9 +21,9 @@ $(document).ready(function () { $("#map").show(); $("#usemap").hide(); - var params = $("#map").data(); - var centre = [params.lat, params.lon]; - var position = $("html").attr("dir") === "rtl" ? "topleft" : "topright"; + const params = $("#map").data(); + const centre = [params.lat, params.lon]; + const position = $("html").attr("dir") === "rtl" ? "topleft" : "topright"; map = L.map("map", { attributionControl: false, diff --git a/app/assets/javascripts/embed.js.erb b/app/assets/javascripts/embed.js.erb index 34a8b68bc..aff13add8 100644 --- a/app/assets/javascripts/embed.js.erb +++ b/app/assets/javascripts/embed.js.erb @@ -32,7 +32,7 @@ window.onload = function () { <% end %> }; - var map = L.map("map"); + const map = L.map("map"); map.attributionControl.setPrefix(""); map.removeControl(map.attributionControl); @@ -80,7 +80,7 @@ L.Control.OSMReportAProblem = L.Control.Attribution.extend({ }, onAdd: function (map) { - var container = L.Control.Attribution.prototype.onAdd.call(this, map); + const container = L.Control.Attribution.prototype.onAdd.call(this, map); map.on("moveend", this._update, this); diff --git a/app/assets/javascripts/fixthemap.js b/app/assets/javascripts/fixthemap.js index 221b5355f..2b3101db4 100644 --- a/app/assets/javascripts/fixthemap.js +++ b/app/assets/javascripts/fixthemap.js @@ -1,7 +1,7 @@ $(document).ready(function () { - var params = OSM.params(); + const params = OSM.params(); - var url = "/note/new"; + let url = "/note/new"; if (!params.zoom) params.zoom = 17; if (params.lat && params.lon) url += OSM.formatHash(params); $(".icon.note").attr("href", url); diff --git a/app/assets/javascripts/id.js b/app/assets/javascripts/id.js index 15f77b1c1..f2063ff0e 100644 --- a/app/assets/javascripts/id.js +++ b/app/assets/javascripts/id.js @@ -3,7 +3,7 @@ /* globals iD */ document.addEventListener("DOMContentLoaded", function () { - var container = document.getElementById("id-container"); + const container = document.getElementById("id-container"); if (typeof iD === "undefined" || !iD.utilDetect().support) { container.innerHTML = "This editor is supported " + @@ -11,16 +11,16 @@ document.addEventListener("DOMContentLoaded", function () { "Please upgrade your browser or use JOSM to edit the map."; container.className = "unsupported"; } else { - var idContext = iD.coreContext(); + const idContext = iD.coreContext(); idContext.connection().apiConnections([]); - var url = location.protocol + "//" + location.host; + const url = location.protocol + "//" + location.host; idContext.preauth({ url: url, apiUrl: url === "https://www.openstreetmap.org" ? "https://api.openstreetmap.org" : url, access_token: container.dataset.token }); - var id = idContext + const id = idContext .embed(true) .assetPath("iD/") .assetMap(JSON.parse(container.dataset.assetMap)) @@ -33,18 +33,18 @@ document.addEventListener("DOMContentLoaded", function () { return; } - var hashChangedAutomatically = false; + let hashChangedAutomatically = false; id.map().on("move.embed", parent.$.throttle(250, function () { if (id.inIntro()) return; - var zoom = ~~id.map().zoom(), - center = id.map().center(), - llz = { lon: center[0], lat: center[1], zoom: zoom }; + const zoom = ~~id.map().zoom(), + center = id.map().center(), + llz = { lon: center[0], lat: center[1], zoom: zoom }; parent.updateLinks(llz, zoom); // Manually resolve URL to avoid iframe JS context weirdness. // https://gist.github.com/jfirebaugh/5439412 - var hash = parent.OSM.formatHash(llz); + const hash = parent.OSM.formatHash(llz); if (hash !== parent.location.hash) { hashChangedAutomatically = true; parent.location.replace(parent.location.href.replace(/(#.*|$)/, hash)); @@ -63,7 +63,7 @@ document.addEventListener("DOMContentLoaded", function () { parent.$("body").on("click", "a.set_position", function (e) { e.preventDefault(); - var data = parent.$(this).data(); + const data = parent.$(this).data(); goToLocation(data); }); @@ -73,7 +73,7 @@ document.addEventListener("DOMContentLoaded", function () { return; } e.preventDefault(); - var data = parent.OSM.mapParams(); + const data = parent.OSM.mapParams(); goToLocation(data); }); } diff --git a/app/assets/javascripts/index.js b/app/assets/javascripts/index.js index 810327e3f..194ed82f7 100644 --- a/app/assets/javascripts/index.js +++ b/app/assets/javascripts/index.js @@ -25,7 +25,7 @@ //= require router $(document).ready(function () { - var map = new L.OSM.Map("map", { + const map = new L.OSM.Map("map", { zoomControl: false, layerControl: false, contextmenu: true, @@ -33,7 +33,7 @@ $(document).ready(function () { }); OSM.loadSidebarContent = function (path, callback) { - var content_path = path; + let content_path = path; map.setSidebarOverlaid(false); @@ -78,7 +78,7 @@ $(document).ready(function () { }); }; - var params = OSM.mapParams(); + const params = OSM.mapParams(); map.attributionControl.setPrefix(""); @@ -90,19 +90,19 @@ $(document).ready(function () { } }); - var sidebar = L.OSM.sidebar("#map-ui") + const sidebar = L.OSM.sidebar("#map-ui") .addTo(map); - var position = $("html").attr("dir") === "rtl" ? "topleft" : "topright"; + const position = $("html").attr("dir") === "rtl" ? "topleft" : "topright"; function addControlGroup(controls) { for (const control of controls) control.addTo(map); - var firstContainer = controls[0].getContainer(); + const firstContainer = controls[0].getContainer(); $(firstContainer).find(".control-button").first() .addClass("control-button-first"); - var lastContainer = controls[controls.length - 1].getContainer(); + const lastContainer = controls[controls.length - 1].getContainer(); $(lastContainer).find(".control-button").last() .addClass("control-button-last"); } @@ -166,7 +166,7 @@ $(document).ready(function () { $(".leaflet-control .control-button").tooltip({ placement: "left", container: "body" }); - var expiry = new Date(); + const expiry = new Date(); expiry.setYear(expiry.getFullYear() + 10); map.on("moveend baselayerchange overlayadd overlayremove", function () { @@ -188,11 +188,11 @@ $(document).ready(function () { Cookies.set("_osm_welcome", "hide", { secure: true, expires: expiry, path: "/", samesite: "lax" }); }); - var bannerExpiry = new Date(); + const bannerExpiry = new Date(); bannerExpiry.setYear(bannerExpiry.getFullYear() + 1); $("#banner .btn-close").on("click", function (e) { - var cookieId = e.target.id; + const cookieId = e.target.id; $("#banner").hide(); e.preventDefault(); if (cookieId) { @@ -203,7 +203,7 @@ $(document).ready(function () { if (OSM.MATOMO) { map.on("baselayerchange overlayadd", function (e) { if (e.layer.options) { - var goal = OSM.MATOMO.goals[e.layer.options.layerId]; + const goal = OSM.MATOMO.goals[e.layer.options.layerId]; if (goal) { $("body").trigger("matomogoal", goal); @@ -223,14 +223,14 @@ $(document).ready(function () { } function remoteEditHandler(bbox, object) { - var remoteEditHost = "http://127.0.0.1:8111", - osmHost = location.protocol + "//" + location.host, - query = new URLSearchParams({ - left: bbox.getWest() - 0.0001, - top: bbox.getNorth() + 0.0001, - right: bbox.getEast() + 0.0001, - bottom: bbox.getSouth() - 0.0001 - }); + const remoteEditHost = "http://127.0.0.1:8111", + osmHost = location.protocol + "//" + location.host, + 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.set("select", object.type + object.id); // can't select notes sendRemoteEditCommand(remoteEditHost + "/load_and_zoom?" + query, function () { @@ -253,7 +253,7 @@ $(document).ready(function () { } $("a[data-editor=remote]").click(function (e) { - var params = OSM.mapParams(this.search); + const params = OSM.mapParams(this.search); remoteEditHandler(map.getBounds(), params.object); e.preventDefault(); }); @@ -273,7 +273,7 @@ $(document).ready(function () { } OSM.Index = function (map) { - var page = {}; + const page = {}; page.pushstate = page.popstate = function () { map.setSidebarOverlaid(true); @@ -295,7 +295,7 @@ $(document).ready(function () { }; OSM.Browse = function (map, type) { - var page = {}; + const page = {}; page.pushstate = page.popstate = function (path, id) { OSM.loadSidebarContent(path, function () { @@ -308,7 +308,7 @@ $(document).ready(function () { }; function addObject(type, id, center) { - var hashParams = OSM.parseHash(window.location.hash); + const hashParams = OSM.parseHash(window.location.hash); map.addObject({ type: type, id: parseInt(id, 10) }, function (bounds) { if (!hashParams.center && bounds.isValid() && (center || !map.getBounds().contains(bounds))) { @@ -327,7 +327,7 @@ $(document).ready(function () { }; OSM.OldBrowse = function () { - var page = {}; + const page = {}; page.pushstate = page.popstate = function (path) { OSM.loadSidebarContent(path); @@ -336,7 +336,7 @@ $(document).ready(function () { return page; }; - var history = OSM.History(map); + const history = OSM.History(map); OSM.router = OSM.Router(map, { "/": OSM.Index(map), diff --git a/app/assets/javascripts/index/changeset.js b/app/assets/javascripts/index/changeset.js index d3e61270b..1ec5940b2 100644 --- a/app/assets/javascripts/index/changeset.js +++ b/app/assets/javascripts/index/changeset.js @@ -1,6 +1,6 @@ OSM.Changeset = function (map) { - var page = {}, - content = $("#sidebar_content"); + const page = {}, + content = $("#sidebar_content"); page.pushstate = page.popstate = function (path) { OSM.loadSidebarContent(path, function () { @@ -12,7 +12,7 @@ OSM.Changeset = function (map) { const changesetData = content.find("[data-changeset]").data("changeset"); changesetData.type = "changeset"; - var hashParams = OSM.parseHash(window.location.hash); + const hashParams = OSM.parseHash(window.location.hash); initialize(); map.addObject(changesetData, function (bounds) { if (!hashParams.center && bounds.isValid()) { @@ -24,7 +24,7 @@ OSM.Changeset = function (map) { }; function updateChangeset(method, url, include_data) { - var data; + let data; content.find("#comment-error").prop("hidden", true); content.find("button[data-method][data-url]").prop("disabled", true); @@ -56,8 +56,8 @@ OSM.Changeset = function (map) { function initialize() { content.find("button[data-method][data-url]").on("click", function (e) { e.preventDefault(); - var data = $(e.target).data(); - var include_data = e.target.name === "comment"; + const data = $(e.target).data(); + const include_data = e.target.name === "comment"; updateChangeset(data.method, data.url, include_data); }); diff --git a/app/assets/javascripts/index/contextmenu.js b/app/assets/javascripts/index/contextmenu.js index d7e6b427d..6f85a5252 100644 --- a/app/assets/javascripts/index/contextmenu.js +++ b/app/assets/javascripts/index/contextmenu.js @@ -69,7 +69,7 @@ OSM.initializeContextMenu = function (map) { return $(input).val(); } - var updateMenu = function updateMenu() { + const updateMenu = function updateMenu() { map.contextmenu.setDisabled(2, map.getZoom() < 12); map.contextmenu.setDisabled(4, map.getZoom() < 14); }; diff --git a/app/assets/javascripts/index/directions-endpoint.js b/app/assets/javascripts/index/directions-endpoint.js index 11a70c62f..90e95857f 100644 --- a/app/assets/javascripts/index/directions-endpoint.js +++ b/app/assets/javascripts/index/directions-endpoint.js @@ -1,5 +1,5 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, changeCallback) { - var endpoint = {}; + const endpoint = {}; endpoint.marker = L.marker([0, 0], { icon: L.icon({ @@ -52,7 +52,7 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ch function inputChangeListener(e) { // make text the same in both text boxes - var value = e.target.value; + const value = e.target.value; endpoint.setValue(value); } @@ -61,8 +61,8 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ch delete endpoint.geocodeRequest; input.removeClass("is-invalid"); - var coordinatesMatch = value.match(/^\s*([+-]?\d+(?:\.\d*)?)(?:\s+|\s*[/,]\s*)([+-]?\d+(?:\.\d*)?)\s*$/); - var latlng = coordinatesMatch && L.latLng(coordinatesMatch[1], coordinatesMatch[2]); + const coordinatesMatch = value.match(/^\s*([+-]?\d+(?:\.\d*)?)(?:\s+|\s*[/,]\s*)([+-]?\d+(?:\.\d*)?)\s*$/); + const latlng = coordinatesMatch && L.latLng(coordinatesMatch[1], coordinatesMatch[2]); if (latlng && endpoint.cachedReverseGeocode && endpoint.cachedReverseGeocode.latlng.equals(latlng)) { setLatLng(latlng); @@ -92,8 +92,8 @@ OSM.DirectionsEndpoint = function Endpoint(map, input, iconUrl, dragCallback, ch }; endpoint.swapCachedReverseGeocodes = function (otherEndpoint) { - var g0 = endpoint.cachedReverseGeocode; - var g1 = otherEndpoint.cachedReverseGeocode; + const g0 = endpoint.cachedReverseGeocode; + const g1 = otherEndpoint.cachedReverseGeocode; delete endpoint.cachedReverseGeocode; delete otherEndpoint.cachedReverseGeocode; if (g0) otherEndpoint.cachedReverseGeocode = g0; diff --git a/app/assets/javascripts/index/directions.js b/app/assets/javascripts/index/directions.js index 0ac66d9d6..2338f537f 100644 --- a/app/assets/javascripts/index/directions.js +++ b/app/assets/javascripts/index/directions.js @@ -4,59 +4,59 @@ OSM.Directions = function (map) { let controller = null; // the AbortController for the current route request if a route request is in progress - var chosenEngine; + let chosenEngine; - var popup = L.popup({ autoPanPadding: [100, 100] }); + const popup = L.popup({ autoPanPadding: [100, 100] }); - var polyline = L.polyline([], { + const polyline = L.polyline([], { color: "#03f", opacity: 0.3, weight: 10 }); - var highlight = L.polyline([], { + const highlight = L.polyline([], { color: "#ff0", opacity: 0.5, weight: 12 }); - var endpointDragCallback = function (dragging) { + const endpointDragCallback = function (dragging) { if (!map.hasLayer(polyline)) return; if (dragging && !chosenEngine.draggable) return; if (dragging && controller) return; getRoute(false, !dragging); }; - var endpointChangeCallback = function () { + const endpointChangeCallback = function () { getRoute(true, true); }; - var endpoints = [ + const endpoints = [ OSM.DirectionsEndpoint(map, $("input[name='route_from']"), OSM.MARKER_GREEN, endpointDragCallback, endpointChangeCallback), OSM.DirectionsEndpoint(map, $("input[name='route_to']"), OSM.MARKER_RED, endpointDragCallback, endpointChangeCallback) ]; - var expiry = new Date(); + const expiry = new Date(); expiry.setYear(expiry.getFullYear() + 10); - var engines = OSM.Directions.engines; + const engines = OSM.Directions.engines; engines.sort(function (a, b) { - var localised_a = I18n.t("javascripts.directions.engines." + a.id), - localised_b = I18n.t("javascripts.directions.engines." + b.id); + const localised_a = I18n.t("javascripts.directions.engines." + a.id), + localised_b = I18n.t("javascripts.directions.engines." + b.id); return localised_a.localeCompare(localised_b); }); - var select = $("select.routing_engines"); + const select = $("select.routing_engines"); engines.forEach(function (engine, i) { select.append(""); }); $(".directions_form .reverse_directions").on("click", function () { - var coordFrom = endpoints[0].latlng, - coordTo = endpoints[1].latlng, - routeFrom = "", + const coordFrom = endpoints[0].latlng, + coordTo = endpoints[1].latlng; + let routeFrom = "", routeTo = ""; if (coordFrom) { routeFrom = coordFrom.lat + "," + coordFrom.lng; @@ -90,8 +90,8 @@ OSM.Directions = function (map) { } function formatTime(s) { - var m = Math.round(s / 60); - var h = Math.floor(m / 60); + let m = Math.round(s / 60); + const h = Math.floor(m / 60); m -= h * 60; return h + ":" + (m < 10 ? "0" : "") + m; } @@ -136,7 +136,7 @@ OSM.Directions = function (map) { map.fitBounds(polyline.getBounds().pad(0.05)); } - var distanceText = $("
").append( + const distanceText = $("
").append( I18n.t("javascripts.directions.distance") + ": " + formatDistance(route.distance) + ". " + I18n.t("javascripts.directions.time") + ": " + formatTime(route.time) + "."); if (typeof route.ascend !== "undefined" && typeof route.descend !== "undefined") { @@ -146,9 +146,9 @@ OSM.Directions = function (map) { I18n.t("javascripts.directions.descend") + ": " + formatHeight(route.descend) + "."); } - var turnByTurnTable = $("