Bug 25349: Add checkEnter function and apply it to SCO page

This patch adds the checkEnter function to the OPAC global.js and then applies it to the SCO login page.
TO TEST:
1. Go to SCO login and try entering something in the "Login:" input amd "Password:" input.
2. Pressing enter while in either will automatically submit the form.
3. Apply patch.
4. Type something into the Login: field and press enter, the form should NOT submit.
5. Type something into the Password: field and pess enter, this SHOULD submit the form.
6. Change the syspref SelfCheckoutByLogin to 'Cardnumber'
7. Type something into the Please enter your card number: field, the form should submit.

Signed-off-by: Donnab <donna@bywatersolutions.com>

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
This commit is contained in:
Lucas Gass 2020-05-05 18:04:11 +00:00 committed by Jonathan Druart
parent 4d9ca6b13d
commit 941b5aaecc
2 changed files with 23 additions and 1 deletions

View File

@ -372,7 +372,7 @@
[% IF ( Koha.Preference('SelfCheckoutByLogin') ) %]
<legend>Log in to your account</legend>
<label for="patronlogin">Login:</label>
<input type="text" id="patronlogin" class="focus" size="20" name="patronlogin" />
<input type="text" id="patronlogin" class="focus noEnterSubmit" size="20" name="patronlogin" />
<label for="patronpw">Password:</label>
<input type="password" id="patronpw" size="20" name="patronpw" />
<fieldset class="action">

View File

@ -52,6 +52,28 @@ function suffixOf (s, tok) {
return s.substring(index + 1);
}
$("body").on("keypress", ".noEnterSubmit", function(e){
return checkEnter(e);
});
// http://jennifermadden.com/javascript/stringEnterKeyDetector.html
function checkEnter(e){ //e is event object passed from function invocation
var characterCode; // literal character code will be stored in this variable
if(e && e.which){ //if which property of event object is supported (NN4)
characterCode = e.which; //character code is contained in NN4's which property
} else {
characterCode = e.keyCode; //character code is contained in IE's keyCode property
}
if( characterCode == 13 //if generated character code is equal to ascii 13 (if enter key)
&& e.target.nodeName == "INPUT"
&& e.target.type != "submit" // Allow enter to submit using the submit button
){
return false;
} else {
return true;
}
}
// Adapted from https://gist.github.com/jnormore/7418776
function confirmModal(message, title, yes_label, no_label, callback) {
$("#bootstrap-confirm-box-modal").data('confirm-yes', false);