X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/2fcee9625dcd192d0c524f27d9cb182c883e31b4..7cf9bf0e553a141acab2afea53842f97eddd0a40:/app/assets/javascripts/application.js diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index af67244bc..e8662e5cf 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -1,6 +1,5 @@ //= require jquery3 //= require jquery_ujs -//= require jquery.timers //= require jquery.throttle-debounce //= require js-cookie/dist/js.cookie //= require popper @@ -15,9 +14,29 @@ //= require oauth //= require matomo //= require richtext -//= require qs/dist/qs -//= require bs-custom-file-input -//= require bs-custom-file-input-init + +{ + const application_data = $("head").data(); + + I18n.default_locale = OSM.DEFAULT_LOCALE; + I18n.locale = application_data.locale; + I18n.fallbacks = true; + + OSM.preferred_editor = application_data.preferredEditor; + OSM.preferred_languages = application_data.preferredLanguages; + + if (application_data.user) { + OSM.user = application_data.user; + + if (application_data.userHome) { + OSM.home = application_data.userHome; + } + } + + if (application_data.location) { + OSM.location = application_data.location; + } +} /* * Called as the user scrolls/zooms around to manipulate hrefs of the @@ -25,34 +44,34 @@ */ window.updateLinks = function (loc, zoom, layers, object) { $(".geolink").each(function (index, link) { - var href = link.href.split(/[?#]/)[0], - args = Qs.parse(link.search.substring(1)), - editlink = $(link).hasClass("editlink"); + let href = link.href.split(/[?#]/)[0]; + const queryArgs = new URLSearchParams(link.search), + editlink = $(link).hasClass("editlink"); - delete args.node; - delete args.way; - delete args.relation; - delete args.changeset; - delete args.note; + queryArgs.delete("node"); + queryArgs.delete("way"); + queryArgs.delete("relation"); + queryArgs.delete("changeset"); + queryArgs.delete("note"); if (object && editlink) { - args[object.type] = object.id; + queryArgs.set(object.type, object.id); } - var query = Qs.stringify(args); + const query = queryArgs.toString(); if (query) href += "?" + query; - args = { + const hashArgs = { lat: loc.lat, lon: "lon" in loc ? loc.lon : loc.lng, zoom: zoom }; if (layers && !editlink) { - args.layers = layers; + hashArgs.layers = layers; } - href += OSM.formatHash(args); + href += OSM.formatHash(hashArgs); link.href = href; }); @@ -69,6 +88,10 @@ window.updateLinks = function (loc, zoom, layers, object) { }; $(document).ready(function () { + // NB: Turns Turbo Drive off by default. Turbo Drive must be opt-in on a per-link and per-form basis + // See https://turbo.hotwired.dev/reference/drive#turbo.session.drive + Turbo.session.drive = false; + var headerWidth = 0, compactWidth = 0; @@ -103,9 +126,13 @@ $(document).ready(function () { $("body").removeClass("compact-nav"); + $("header").removeClass("text-nowrap"); + $("header nav.secondary > ul").removeClass("flex-nowrap"); + updateHeader(); $(window).resize(updateHeader); + $(document).on("turbo:render", updateHeader); }, 0); $("#menu-icon").on("click", function (e) { @@ -117,27 +144,6 @@ $(document).ready(function () { $("header").toggleClass("closed"); }); - var application_data = $("head").data(); - - I18n.default_locale = OSM.DEFAULT_LOCALE; - I18n.locale = application_data.locale; - I18n.fallbacks = true; - - OSM.preferred_editor = application_data.preferredEditor; - OSM.preferred_languages = application_data.preferredLanguages; - - if (application_data.user) { - OSM.user = application_data.user; - - if (application_data.userHome) { - OSM.home = application_data.userHome; - } - } - - if (application_data.location) { - OSM.location = application_data.location; - } - $("#edit_tab") .attr("title", I18n.t("javascripts.site.edit_disabled_tooltip")); });