Bug 25349: Add checkEnter function and apply it to SCO page
authorLucas Gass <lucas@bywatersolutions.com>
Tue, 5 May 2020 18:04:11 +0000 (18:04 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Mon, 15 Jun 2020 08:32:10 +0000 (10:32 +0200)
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>

koha-tmpl/opac-tmpl/bootstrap/en/modules/sco/sco-main.tt
koha-tmpl/opac-tmpl/bootstrap/js/global.js

index 4b3fe8a..c428886 100644 (file)
                                         [% 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">
index 76ce7b5..166c361 100644 (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);