.attr('class', 'control-layers');
var button = $('<a>')
- .attr('class', 'control-button mobile-hide')
+ .attr('class', 'control-button')
.attr('href', '#')
.attr('title', I18n.t('javascripts.map.layers.title'))
.html('<span class="icon layers"></span>')
var list = $('<ul>')
.appendTo(overlaySection);
- function addOverlay(layer, name) {
+ function addOverlay(layer, name, maxArea) {
+ var refName = name.split(' ').join('_').toLowerCase();
var item = $('<li>')
+ .attr('class', refName)
+ .tooltip({
+ placement: 'top'
+ })
.appendTo(list);
var label = $('<label>')
} else {
map.removeLayer(layer);
}
+ map.fire('overlaylayerchange', {layer: layer});
});
map.on('layeradd layerremove', function() {
input.prop('checked', map.hasLayer(layer));
});
+
+ map.on('zoomend', function() {
+ var disabled = map.getBounds().getSize() >= maxArea;
+ $(input).prop('disabled', disabled);
+ $(item).attr('class', disabled ? 'disabled' : '');
+ item.attr('data-original-title', disabled ?
+ I18n.t('javascripts.site.' + refName + '_zoom_in_tooltip') : '');
+ });
}
- addOverlay(map.noteLayer, I18n.t('javascripts.map.layers.notes'));
- addOverlay(map.dataLayer, I18n.t('javascripts.map.layers.data'));
+ addOverlay(map.noteLayer, I18n.t('javascripts.map.layers.notes'), OSM.MAX_NOTE_REQUEST_AREA);
+ addOverlay(map.dataLayer, I18n.t('javascripts.map.layers.data'), OSM.MAX_REQUEST_AREA);
}
options.sidebar.addPane($ui);
e.stopPropagation();
e.preventDefault();
options.sidebar.togglePane($ui, button);
+ $('.leaflet-control .control-button').tooltip('hide');
}
return $container[0];