- // Here we're assuming that all parameters but ?layers= and
- // ?{node,way,relation}= can be safely omitted from the shortlink
- // which encodes lat/lon/zoom. If new URL parameters are added to
- // the main slippy map this needs to be changed.
- if (args.layers || object) {
- this.href = setArgs(prefix + "/go/" + code, args);
+ href += OSM.formatHash(hashArgs);
+
+ link.href = href;
+ });
+
+ // Disable the button group and also the buttons to avoid
+ // inconsistent behaviour when zooming
+ const editDisabled = zoom < 13;
+ $("#edit_tab")
+ .tooltip({ placement: "bottom" })
+ .tooltip(editDisabled ? "enable" : "disable")
+ .toggleClass("disabled", editDisabled)
+ .find("a")
+ .toggleClass("disabled", editDisabled);
+};
+
+$(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;
+
+ const $expandedSecondaryMenu = $("header nav.secondary > ul"),
+ $collapsedSecondaryMenu = $("#compact-secondary-nav > ul"),
+ secondaryMenuItems = [],
+ breakpointWidth = 768;
+ let moreItemWidth = 0;
+
+ OSM.csrf = {};
+ OSM.csrf[($("meta[name=csrf-param]").attr("content"))] = $("meta[name=csrf-token]").attr("content");
+
+ function updateHeader() {
+ const windowWidth = $(window).width();
+
+ if (windowWidth < breakpointWidth) {
+ $("body").addClass("small-nav");
+ expandAllSecondaryMenuItems();