X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/e96a64ca9c2ea068dd9167e074ee26c8d28744b4..f24309ad3e7b2a805f032afdef9765dc6d0bc022:/app/assets/javascripts/leaflet.sidebar.js?ds=sidebyside diff --git a/app/assets/javascripts/leaflet.sidebar.js b/app/assets/javascripts/leaflet.sidebar.js index f75cc29fe..db9e7aef2 100644 --- a/app/assets/javascripts/leaflet.sidebar.js +++ b/app/assets/javascripts/leaflet.sidebar.js @@ -1,7 +1,14 @@ L.OSM.sidebar = function(selector) { var control = {}, sidebar = $(selector), - current = $(); + current = $(), + currentButton = $(), + map; + + control.addTo = function (_) { + map = _; + return control; + }; control.addPane = function(pane) { pane @@ -9,26 +16,31 @@ L.OSM.sidebar = function(selector) { .appendTo(sidebar); }; - control.togglePane = function(pane) { - var controlContainer = $('.leaflet-control-container .leaflet-top.leaflet-right'); - + control.togglePane = function(pane, button) { current .hide() .trigger('hide'); + currentButton + .removeClass('active'); + if (current === pane) { $(sidebar).hide(); - controlContainer.css({paddingRight: '0'}); - current = $(); + current = currentButton = $(); } else { $(sidebar).show(); - controlContainer.css({paddingRight: '250px'}); current = pane; + currentButton = button || $(); } + map.invalidateSize({pan: false, animate: false}); + current .show() .trigger('show'); + + currentButton + .addClass('active'); }; return control;