Bug 24510: When Placing a Hold, cursor doesn't focus on Patron Name

This alternate patch tries to implement a fix in a more "correct" way by
tying the cursor focus to the initialization of the jQueryUI tabs. By
configuring both the "create" and "activate" events we can make sure the
correct input field is focused.

I think the only advantage of this patch over the other one is that
tying the focus to the tabs activation makes it a little more obvious
where in the DOM loading sequence the focus is being set.

To test, follow the original patch's test plan:

TEST PLAN:
1. Go to Biblio Record
2. Place Hold (request.pl) - either the Hold above the Bib or the Hold
   on the left, it does the same thing.
3. Note that the cursor does not go to Patron Name (for whom to place
   the hold for), it goes to the Top Search bar under Checkout.
4. Apply patch and reload the page.
5. The focus should now be correctly set.
6. Toggle between 'Patrons' and 'Club' tabs.
7. Focus should stay set.

Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
Owen Leonard 2020-02-26 15:53:48 +00:00 committed by Martin Renvoize
parent a8e2249ca1
commit c841e8a8bf
No known key found for this signature in database
GPG Key ID: 422B469130441A0F
1 changed files with 18 additions and 13 deletions

View File

@ -975,9 +975,25 @@
$(document).ready(function() {
[% UNLESS clubs %]
$('#circ_holds_select').tabs({active: 0});
$('#circ_holds_select').tabs({
active: 0,
activate: function(){
$(this).find("input.focus").focus();
},
create: function(){
$(this).find("input.focus").focus();
}
});
[% ELSE %]
$('#circ_holds_select').tabs({active: 1});
$('#circ_holds_select').tabs({
active: 1,
activate: function(){
$(this).find("input.focus").focus();
},
create: function(){
$(this).find("input.focus").focus();
}
});
[% END %]
function ToggleHoldsToPlace() {
if ( $("#requestany").prop('checked') ) {
@ -1258,17 +1274,6 @@
[% END %]
[% END %]
if ( $(".focus").is(":visible") ) {
$(".focus").focus();
}
$('[href="#holds_patronsearch_pane"]').click( function() {
$('#patron').focus();
})
$('[href="#holds_clubsearch_pane"]').click( function() {
$('#club').focus();
})
});
</script>
[% END %]