From bb3a0e5dbc16b4249b3eacae98a26d3479a76f5a Mon Sep 17 00:00:00 2001 From: Owen Leonard Date: Thu, 25 Apr 2019 11:45:58 +0000 Subject: [PATCH] Bug 22768: Global search form keyboard navigation broken Bug 22045 made changes to the global staff client JavaScript which broken keyboard navigation for the most common forms in the resident search form("Check out, Check in, Renew, Search). This patch reimplements the tab selection code on the basic MARC editor page so that the keyboard shortcut behavior can be restored. To test, apply the patch go to Cataloging. - Search for an existing record and edit it in the basic MARC editor. - Test that the numbered tabs (0-9) at the top work correctly. - Select a tab other than 0 and choose Save -> Save and continue editing. When the page reloads you should be returned to the tab you were on when you saved. - Go to the Circulation home page. Test the keyboard shortcuts for switching tabs in header area: - Alt-u (Check out) - Alt-r (Check in) - Alt-w (Renew) - Alt-q (Search) Signed-off-by: Claire Gravely Signed-off-by: Nadine Pierre Signed-off-by: Katrin Fischer Signed-off-by: Martin Renvoize --- .../prog/en/modules/cataloguing/addbiblio.tt | 19 ++++++++++++------- .../intranet-tmpl/prog/js/staff-global.js | 2 +- 2 files changed, 13 insertions(+), 8 deletions(-) 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 b13ed094c2..635b6cceb3 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/addbiblio.tt @@ -28,7 +28,8 @@ }); [% IF tab %] - $('#addbibliotabs').selectTabByID("tab[% tab | html %]"); + link = $("a[href='#[% tab | html %]']"); + selectTab( link ); [% END %] Sticky = $("#toolbar"); @@ -136,12 +137,7 @@ $(".toolbar-tabs a").on("click",function(e){ e.preventDefault(); - $(".toolbar-tabs li").removeClass("selected"); - $(this).parent().addClass("selected"); - var tabid = $(this).data("tabid"); - $('#addbibliotabs').selectTabByID("tab" + tabid + "XX"); - $(".tag_anchors").removeClass("tab_selected").hide(); - $(".tag_anchors_" + tabid ).addClass("tab_selected").show(); + selectTab( $(this ) ); }); $(".tag_anchor").on("click", function(e){ @@ -158,6 +154,15 @@ }); + function selectTab( tablink ){ + $(".toolbar-tabs li").removeClass("selected"); + tablink.parent().addClass("selected"); + var tabid = tablink.data("tabid"); + $('#addbibliotabs').selectTabByID("#tab" + tabid + "XX"); + $(".tag_anchors").removeClass("tab_selected").hide(); + $(".tag_anchors_" + tabid ).addClass("tab_selected").show(); + } + function redirect(dest){ $("#redirect").attr("value",dest); return Check(); diff --git a/koha-tmpl/intranet-tmpl/prog/js/staff-global.js b/koha-tmpl/intranet-tmpl/prog/js/staff-global.js index d86b994f1f..70e0551b8f 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/staff-global.js +++ b/koha-tmpl/intranet-tmpl/prog/js/staff-global.js @@ -31,7 +31,7 @@ $.fn.tabIndex = function () { return $(this).parent().children('div').index(this); }; $.fn.selectTabByID = function (tabID) { - $(this).tabs("option", "active", $( "#" + tabID ).tabIndex()); + $(this).tabs("option", "active", $( tabID ).tabIndex()); }; $(document).ready(function() { -- 2.39.5