X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/e443ec7587e78564deadd34f0aebde02c83437cc..46cd3a1114d975a1791c16e5930c9ed7f8367d36:/app/assets/javascripts/application.js diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 89f60847f..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,58 +44,54 @@ */ 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; + 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; }); + // Disable the button group and also the buttons to avoid + // inconsistent behaviour when zooming var editDisabled = zoom < 13; $("#edit_tab") .tooltip({ placement: "bottom" }) - .attr("data-bs-original-title", editDisabled ? - I18n.t("javascripts.site.edit_disabled_tooltip") : "") - // Disable the button group and also the buttons to avoid - // inconsistent behaviour when zooming + .tooltip(editDisabled ? "enable" : "disable") .toggleClass("disabled", editDisabled) .find("a") .toggleClass("disabled", editDisabled); }; -window.maximiseMap = function () { - $("#content").addClass("maximised"); -}; - -window.minimiseMap = function () { - $("#content").removeClass("maximised"); -}; - $(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; @@ -111,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) { @@ -125,23 +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; - - 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")); });