- var editDisabled = zoom < 13;
- $('#edit_tab')
- .tooltip({placement: 'bottom'})
- .off('click.minzoom')
- .on('click.minzoom', function() { return !editDisabled; })
- .toggleClass('disabled', editDisabled)
- .attr('data-original-title', editDisabled ?
- I18n.t('javascripts.site.edit_disabled_tooltip') : '');
-}
-
-// generate a cookie-safe string of map state
-function cookieContent(map) {
- var center = map.getCenter().wrap();
- return [center.lng, center.lat, map.getZoom(), map.getLayersCode()].join('|');
-}
+ // 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();
+ } else {
+ $("body").removeClass("small-nav");
+ const availableWidth = $expandedSecondaryMenu.width();
+ secondaryMenuItems.forEach(function (item) {
+ $(item[0]).remove();
+ });
+ let runningWidth = 0,
+ i = 0,
+ requiredWidth;
+ for (; i < secondaryMenuItems.length; i++) {
+ runningWidth += secondaryMenuItems[i][1];
+ if (i < secondaryMenuItems.length - 1) {
+ requiredWidth = runningWidth + moreItemWidth;
+ } else {
+ requiredWidth = runningWidth;
+ }
+ if (requiredWidth > availableWidth) {
+ break;
+ }
+ expandSecondaryMenuItem($(secondaryMenuItems[i][0]));
+ }
+ for (; i < secondaryMenuItems.length; i++) {
+ collapseSecondaryMenuItem($(secondaryMenuItems[i][0]));
+ }
+ }
+ }