1 L.OSM.key = function (options) {
2 var control = L.control(options);
4 control.onAdd = function (map) {
5 var $container = $('<div>')
6 .attr('class', 'control-key');
9 .attr('class', 'control-button')
11 .html('<span class="icon key"></span>')
13 .appendTo($container);
16 .attr('class', 'key-ui');
19 .attr('class', 'sidebar_heading')
23 .text(I18n.t('javascripts.close'))
24 .attr('class', 'icon close')
25 .bind('click', toggle))
28 .text(I18n.t('javascripts.key.title')));
30 var $section = $('<div>')
31 .attr('class', 'section')
34 options.sidebar.addPane($ui);
40 map.on('baselayerchange', updateButton);
45 map.on('zoomend baselayerchange', update);
46 $section.load('/key', update);
50 map.off('zoomend baselayerchange', update);
56 if (!button.hasClass('disabled')) {
57 options.sidebar.togglePane($ui, button);
59 $('.leaflet-control .control-button').tooltip('hide');
62 function updateButton() {
63 var disabled = ['mapnik', 'cyclemap'].indexOf(map.getMapBaseLayerId()) === -1;
65 .toggleClass('disabled', disabled)
66 .attr('data-original-title',
68 'javascripts.key.tooltip_disabled' :
69 'javascripts.key.tooltip'));
73 var layer = map.getMapBaseLayerId(),
76 $('.mapkey-table-entry').each(function () {
77 var data = $(this).data();
78 if (layer === data.layer && zoom >= data.zoomMin && zoom <= data.zoomMax) {