]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/leaflet.sidebar.js
Merge branch 'master' into notes-search
[rails.git] / app / assets / javascripts / leaflet.sidebar.js
index f75cc29fe33f262539b1a12e53726f66cf26f5b4..db9e7aef2505228010751b145e38771e48cc7564 100644 (file)
@@ -1,7 +1,14 @@
 L.OSM.sidebar = function(selector) {
   var control = {},
     sidebar = $(selector),
 L.OSM.sidebar = function(selector) {
   var control = {},
     sidebar = $(selector),
-    current = $();
+    current = $(),
+    currentButton  = $(),
+    map;
+
+  control.addTo = function (_) {
+    map = _;
+    return control;
+  };
 
   control.addPane = function(pane) {
     pane
 
   control.addPane = function(pane) {
     pane
@@ -9,26 +16,31 @@ L.OSM.sidebar = function(selector) {
       .appendTo(sidebar);
   };
 
       .appendTo(sidebar);
   };
 
-  control.togglePane = function(pane) {
-    var controlContainer = $('.leaflet-control-container .leaflet-top.leaflet-right');
-
+  control.togglePane = function(pane, button) {
     current
       .hide()
       .trigger('hide');
 
     current
       .hide()
       .trigger('hide');
 
+    currentButton
+      .removeClass('active');
+
     if (current === pane) {
       $(sidebar).hide();
     if (current === pane) {
       $(sidebar).hide();
-      controlContainer.css({paddingRight: '0'});
-      current = $();
+      current = currentButton = $();
     } else {
       $(sidebar).show();
     } else {
       $(sidebar).show();
-      controlContainer.css({paddingRight: '250px'});
       current = pane;
       current = pane;
+      currentButton = button || $();
     }
 
     }
 
+    map.invalidateSize({pan: false, animate: false});
+
     current
       .show()
       .trigger('show');
     current
       .show()
       .trigger('show');
+
+    currentButton
+      .addClass('active');
   };
 
   return control;
   };
 
   return control;