From da916a368c98e7f2599cf3a52126d53ee0ecfcd1 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Thu, 3 Nov 2011 14:54:39 -0400 Subject: [PATCH] Fix for Bug 7135: Save button options This patch adds a jQuery plugin which will cause an element to remain "fixed" at the top of the screen if it would otherwise scroll up out of view. The license of this plugin is "This plugin is as free as fresh air. Feel free to use it anywhere.". Signed-off-by: Liz Rea I tested this on Chrome OSX saving works changing framework works scrolling works, obviously. tabbing through the records works z39 button works as expected Signed-off-by: Paul Poulain updated patch comment about licensing of the plugin --- .../intranet-tmpl/prog/en/css/addbiblio.css | 5 ++ .../en/lib/jquery/plugins/jquery.fixFloat.js | 67 +++++++++++++++++++ .../prog/en/modules/cataloguing/addbiblio.tt | 2 + 3 files changed, 74 insertions(+) create mode 100644 koha-tmpl/intranet-tmpl/prog/en/lib/jquery/plugins/jquery.fixFloat.js diff --git a/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css b/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css index 3cf2e88fcc..d2489b3f36 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css +++ b/koha-tmpl/intranet-tmpl/prog/en/css/addbiblio.css @@ -144,4 +144,9 @@ a.tagnum { .yui-gf .yui-u { width: 79.2%; +} +/* Class to be added to toolbar when it starts being fixed at the top of the screen*/ +.floating { + -webkit-box-shadow: 0px 3px 2px 0px rgba(0, 0, 0, .5); + box-shadow: 0px 3px 2px 0px rgba(0, 0, 0, .5); } \ No newline at end of file diff --git a/koha-tmpl/intranet-tmpl/prog/en/lib/jquery/plugins/jquery.fixFloat.js b/koha-tmpl/intranet-tmpl/prog/en/lib/jquery/plugins/jquery.fixFloat.js new file mode 100644 index 0000000000..9fb63e0ca7 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/lib/jquery/plugins/jquery.fixFloat.js @@ -0,0 +1,67 @@ +/* Source: http://www.webspeaks.in/2011/07/new-gmail-like-floating-toolbar-jquery.html + Revision: http://jsfiddle.net/pasmalin/AyjeZ/ +*/ +(function($){ + $.fn.fixFloat = function(options){ + + var defaults = { + enabled: true + }; + var options = $.extend(defaults, options); + + var offsetTop; /**Distance of the element from the top of window**/ + var s; /**Scrolled distance from the top of window through which we have moved**/ + var fixMe = true; + var repositionMe = true; + + var tbh = $(this); + var originalOffset = tbh.position().top; /**Get the actual distance of the element from the top mychange:change to position better work**/ + + if (tbh.css('position')!='absolute') { + var tbhBis = $("
"); + tbhBis.css({"display":tbh.css("display"),"visibility":"hidden"}); + tbhBis.width(tbh.outerWidth(true)); + tbhBis.height(tbh.outerHeight(true)); + tbh.after(tbhBis); + tbh.width(tbh.width()); + tbh.css({'position':'absolute'}); + } + tbh.css({'z-index':1000}); + + if(options.enabled){ + $(window).scroll(function(){ + var offsetTop = tbh.offset().top; /**Get the current distance of the element from the top **/ + var s = parseInt($(window).scrollTop(), 10); /**Get the from the top of wondow through which we have scrolled**/ + var fixMe = true; + if(s > offsetTop){ + fixMe = true; + }else{ + fixMe = false; + } + + if(s < originalOffset){ + repositionMe = true; + }else{ + repositionMe = false; + } + + if(fixMe){ + var cssObj = { + 'position' : 'fixed', + 'top' : '0px' + } + tbh.css(cssObj); + tbh.addClass("floating"); + } + if(repositionMe){ + var cssObj = { + 'position' : 'absolute', + 'top' : originalOffset + } + tbh.css(cssObj); + tbh.removeClass("floating"); + } + }); + } + }; +})(jQuery); \ No newline at end of file diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt index 65feefbec7..62f5d87c07 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt @@ -2,6 +2,7 @@ Koha › Cataloging › [% IF ( biblionumber ) %]Editing [% title |html %] (Record Number [% biblionumber %])[% ELSE %]Add MARC Record[% END %] [% INCLUDE 'doc-head-close.inc' %] +