Bug 21099: Reposition floating toolbars earlier
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Fri, 20 Jul 2018 15:59:16 +0000 (12:59 -0300)
committerNick Clemens <nick@bywatersolutions.com>
Wed, 8 Aug 2018 21:02:36 +0000 (21:02 +0000)
To recreate:
- Go to the advanced search form
- scrolldown to position the toolbar on top of the window
- scrollup

https://screenshots.firefox.com/NnkFg3iOXqLPxfkd/pro.kohadev.org

The toolbar should have been repositioned earlier

Test plan:
Edit a patron
- scrolldown
- scrollup
- unfold the form in the header (tab "Search patrons", link "[+]")
- scrolldown
- scrollup
Advanced search
scrolldown
scrollup

You should notice the difference with and without this patch

Signed-off-by: Pierre-Luc Lapointe <pierreluc.lapointe@inLibro.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Nick Clemens <nick@bywatersolutions.com>
koha-tmpl/intranet-tmpl/lib/jquery/plugins/jquery.fixFloat.js

index 36c99b0..74633e7 100644 (file)
@@ -8,11 +8,17 @@
         var tbh = $(this);
         var defaults = {
             enabled: true,
-            originalOffset: tbh.position().top
+            originalOffset: tbh.offset().top,
+            originalPosition: tbh.position().top,
         };
         var originalOffset = typeof options.originalOffset === 'undefined'
             ? defaults.originalOffset
             : options.originalOffset;
+
+        var originalPosition = typeof options.originalPosition === 'undefined'
+            ? defaults.originalPosition
+            : options.originalPosition;
+
         options = $.extend(defaults, options);
 
         if (tbh.css('position') !== 'absolute') {
             }
             tbh.css({
                 'position': 'absolute',
-                    'top': originalOffset
+                    'top': originalPosition,
             });
         }
 
         if (options.enabled) {
             $(window).scroll(function () {
                 var offsetTop = tbh.offset().top;
+
                 var s = parseInt($(window).scrollTop(), 10);
+
                 var fixMe = (s > offsetTop);
                 var repositionMe = (s < originalOffset);
                 if (fixMe) {
@@ -55,7 +63,7 @@
                 if (repositionMe) {
                     tbh.css({
                         'position': 'absolute',
-                            'top': originalOffset,
+                            'top': originalPosition,
                         'z-index': '1'
                     });
                     tbh.removeClass("floating");