X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/d4135390acff291f2f2c15d9fb86723ebf4fe755..ad368d189f4842f18e81fd272c677e5d820a2da4:/app/assets/javascripts/application.js diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index b257f7fed..2b8bc5d26 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -3,6 +3,8 @@ //= require jquery.timers //= require jquery.cookie //= require jquery.throttle-debounce +//= require bootstrap.tooltip +//= require bootstrap.dropdown //= require augment //= require osm //= require leaflet @@ -15,7 +17,6 @@ //= require oauth //= require piwik //= require map -//= require menu //= require sidebar //= require richtext //= require geocoder @@ -94,26 +95,25 @@ function updatelinks(loc, zoom, layers, bounds, object) { } link.href = href; - - var minzoom = $(link).data("minzoom"); - if (minzoom) { - var name = link.id.replace(/anchor$/, ""); - $(link).off("click.minzoom"); - if (zoom >= minzoom) { - $(link) - .attr("title", I18n.t("javascripts.site." + name + "_tooltip")) - .removeClass("disabled"); - } else { - $(link) - .attr("title", I18n.t("javascripts.site." + name + "_disabled_tooltip")) - .addClass("disabled") - .on("click.minzoom", function () { - alert(I18n.t("javascripts.site." + name + "_zoom_alert")); - return false; - }); - } - } }); + + 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') : ''); + + var historyDisabled = zoom < 11; + $('#history_tab') + .tooltip({placement: 'bottom'}) + .off('click.minzoom') + .on('click.minzoom', function() { return !historyDisabled; }) + .toggleClass('disabled', historyDisabled) + .attr('data-original-title', historyDisabled ? + I18n.t('javascripts.site.history_disabled_tooltip') : ''); } // generate a cookie-safe string of map state @@ -122,6 +122,19 @@ function cookieContent(map) { return [center.lng, center.lat, map.getZoom(), map.getLayersCode()].join('|'); } +function escapeHTML(string) { + var htmlEscapes = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' + }; + return string == null ? '' : (string + '').replace(/[&<>"']/g, function(match) { + return htmlEscapes[match]; + }); +} + /* * Forms which have been cached by rails may have the wrong * authenticity token, so patch up any forms with the correct