From dcca71f0befa92d2212855aecfc0f473b6304832 Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Fri, 11 Apr 2014 12:40:20 -0400 Subject: [PATCH] Bug 12075: fix keyboard shortcuts broken by jQueryUI upgrade MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The recent jQueryUI upgrade broke keyboard shortcuts in the staff client because of changes to the jQueryUI API. This patch fixes the problem. To test, apply the patch and clear your browser cache if necessary. - View any page in the staff which includes header search tabs for check out, check in, or catalog search (staff client home page or circulation page for instance). - Test the keyboard shortcuts: Alt-q for catalog search, Alt-u for check out, Alt-r for check in. - Each keyboard shortcut should select the correct tab. Followed test plan, patch behaves as expected. Signed-off-by: Marc Véron Signed-off-by: Katrin Fischer Passes all tests and QA script. Confirmed that the shortcuts were broken before the patch and now work again after applying it. Signed-off-by: Galen Charlton --- koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js b/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js index f4b1511e5f..909d74c15d 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js +++ b/koha-tmpl/intranet-tmpl/prog/en/js/staff-global.js @@ -3,14 +3,22 @@ if ( KOHA === undefined ) var KOHA = {}; function _(s) { return s; } // dummy function for gettext +// http://stackoverflow.com/questions/14859281/select-tab-by-name-in-jquery-ui-1-10-0/16550804#16550804 +$.fn.tabIndex = function () { + return $(this).parent().find(this).index() - 1; +}; +$.fn.selectTabByID = function (tabID) { + $(this).tabs("option", "active", $(tabID).tabIndex()); +}; + $(document).ready(function() { $('#header_search').tabs().on( "tabsactivate", function(e, ui) { $(this).find("div:visible").find('input').eq(0).focus(); }); $(".close").click(function(){ window.close(); }); - if($("#header_search #checkin_search").length > 0){ shortcut.add('Alt+r',function (){ $("#header_search").tabs("select","#checkin_search"); $("#ret_barcode").focus(); }); } else { shortcut.add('Alt+r',function (){ location.href="/cgi-bin/koha/circ/returns.pl"; }); } - if($("#header_search #circ_search").length > 0){ shortcut.add('Alt+u',function (){ $("#header_search").tabs("select","#circ_search"); $("#findborrower").focus(); }); } else { shortcut.add('Alt+u',function(){ location.href="/cgi-bin/koha/circ/circulation.pl"; }); } - if($("#header_search #catalog_search").length > 0){ shortcut.add('Alt+q',function (){ $("#header_search").tabs("select","#catalog_search"); $("#search-form").focus(); }); } else { shortcut.add('Alt+q',function(){ location.href="/cgi-bin/koha/catalogue/search.pl"; }); } + if($("#header_search #checkin_search").length > 0){ shortcut.add('Alt+r',function (){ $("#header_search").selectTabByID("#checkin_search"); $("#ret_barcode").focus(); }); } else { shortcut.add('Alt+r',function (){ location.href="/cgi-bin/koha/circ/returns.pl"; }); } + if($("#header_search #circ_search").length > 0){ shortcut.add('Alt+u',function (){ $("#header_search").selectTabByID("#circ_search"); $("#findborrower").focus(); }); } else { shortcut.add('Alt+u',function(){ location.href="/cgi-bin/koha/circ/circulation.pl"; }); } + if($("#header_search #catalog_search").length > 0){ shortcut.add('Alt+q',function (){ $("#header_search").selectTabByID("#catalog_search"); $("#search-form").focus(); }); } else { shortcut.add('Alt+q',function(){ location.href="/cgi-bin/koha/catalogue/search.pl"; }); } $(".focus").focus(); $(".validated").each(function() { -- 2.39.5