]> git.openstreetmap.org Git - rails.git/blobdiff - app/assets/javascripts/leaflet.sidebar.js
Merge pull request #4120 from AntonKhorev/no-deprecated-iframe-attrs
[rails.git] / app / assets / javascripts / leaflet.sidebar.js
index 240e79a5095f16e957bc640df041622c382b5ec9..7e72278e322711e51cd3d538eed0334bbd5ed01f 100644 (file)
@@ -1,22 +1,24 @@
-L.OSM.sidebar = function(selector) {
+L.OSM.sidebar = function (selector) {
   var control = {},
   var control = {},
-    sidebar = $(selector),
-    current = $(),
-    currentButton = $(),
-    map;
+      sidebar = $(selector),
+      current = $(),
+      currentButton = $(),
+      map;
 
   control.addTo = function (_) {
     map = _;
     return control;
   };
 
 
   control.addTo = function (_) {
     map = _;
     return control;
   };
 
-  control.addPane = function(pane) {
+  control.addPane = function (pane) {
     pane
       .hide()
       .appendTo(sidebar);
   };
 
     pane
       .hide()
       .appendTo(sidebar);
   };
 
-  control.togglePane = function(pane, button) {
+  control.togglePane = function (pane, button) {
+    var paneWidth = 250;
+
     current
       .hide()
       .trigger("hide");
     current
       .hide()
       .trigger("hide");
@@ -25,15 +27,21 @@ L.OSM.sidebar = function(selector) {
       .removeClass("active");
 
     if (current === pane) {
       .removeClass("active");
 
     if (current === pane) {
+      if ($("html").attr("dir") === "rtl") {
+        map.panBy([-paneWidth, 0], { animate: false });
+      }
       $(sidebar).hide();
       current = currentButton = $();
     } else {
       $(sidebar).show();
       current = pane;
       currentButton = button || $();
       $(sidebar).hide();
       current = currentButton = $();
     } else {
       $(sidebar).show();
       current = pane;
       currentButton = button || $();
+      if ($("html").attr("dir") === "rtl") {
+        map.panBy([paneWidth, 0], { animate: false });
+      }
     }
 
     }
 
-    map.invalidateSize({pan: false, animate: false});
+    map.invalidateSize({ pan: false, animate: false });
 
     current
       .show()
 
     current
       .show()