Bug 18066: Fix map positioning in admin/usage_statistics.pl
authorJulian Maurice <julian.maurice@biblibre.com>
Tue, 21 Mar 2017 11:01:45 +0000 (12:01 +0100)
committerJulian Maurice <julian.maurice@biblibre.com>
Wed, 10 May 2017 14:14:52 +0000 (16:14 +0200)
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

Signed-off-by: Brendan A Gallagher <brendan@bywatersolutions.com>
(cherry picked from commit c3db243ad459782362c7051a648730bc51fda83d)
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

koha-tmpl/intranet-tmpl/prog/en/modules/admin/usage_statistics.tt

index 75a1f0b..f210049 100644 (file)
 
 <script type="text/javascript">
 //<![CDATA[
-    var originalOffset;
-    $(window).scroll(function () {
+    function positionMap() {
         var tbh = $("#mapid");
-        var offsetTop = tbh.offset().top;
+        var mapContainer = tbh.parent();
+        mapContainer.css('position', 'relative');
+        mapContainer.css('min-height', tbh.outerHeight(true));
+        tbh.css('position', 'absolute');
+        tbh.css('right', 0);
+
+        var offsetTop = mapContainer.offset().top;
         var s = parseInt($(window).scrollTop(), 10);
-        var fixMe = (s > offsetTop);
-        if ( !originalOffset ) originalOffset = tbh.position().top;
-        var repositionMe = (s < originalOffset);
-        if (fixMe) {
-            tbh.css({
-                'position': 'fixed',
-                    'top': '0',
-                'margin-left': '40%'
-            });
-        }
-        if (repositionMe) {
-            tbh.css({
-                'position': 'absolute',
-                    'top': originalOffset,
-                'margin-left': '40%'
-            });
+        tbh.css('top', '').css('bottom', '');
+        if (s > offsetTop) {
+            var mapContainerOffsetBottom = offsetTop + mapContainer.innerHeight();
+            if (s + tbh.outerHeight(true) > mapContainerOffsetBottom) {
+                tbh.css('bottom', 0);
+            } else {
+                tbh.css('top', s - offsetTop);
+            }
+        } else {
+            tbh.css('top', 0);
         }
+    }
+
+    $(document).ready(function() {
+        $(window).scroll(positionMap);
+        positionMap();
     });
 //]]>
 </script>
         $("#UsageStatsLibrariesInfo").on('change', function(){
             if ( $(this).val() == 1 ) $("#libraries_info").show()
             else $("#libraries_info").hide();
+            positionMap();
         });
 
     </script>