From 70b02b12d39fec290439ee38daabc26de4cf450f Mon Sep 17 00:00:00 2001 From: Petr Skoda Date: Sun, 10 Jul 2011 16:40:56 +0200 Subject: [PATCH] MDL-23344 fix login form focus --- lib/javascript-static.js | 28 ++++++++++++++++++++++++++++ login/index.php | 2 ++ 2 files changed, 30 insertions(+) diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 5e06bc27f9d..8b12d66adf8 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -723,6 +723,34 @@ M.util.get_string = function(identifier, component, a) { return stringvalue; }; +/** + * Set focus on username or password field of the login form + */ +M.util.focus_login_form = function(Y) { + var username = Y.one('#username'); + var password = Y.one('#password'); + + if (username == null || password == null) { + // something is wrong here + return; + } + + var curElement = document.activeElement + if (curElement == 'undefined') { + // legacy browser - skip refocus protection + } else if (curElement.tagName == 'INPUT') { + // user was probably faster to focus something, do not mess with focus + return; + } + + if (username.get('value') == '') { + username.focus(); + } else { + password.focus(); + } +} + + //=== old legacy JS code, hopefully to be replaced soon by M.xx.yy and YUI3 code === function checkall() { diff --git a/login/index.php b/login/index.php index b0791ed5bf1..e0295969d88 100644 --- a/login/index.php +++ b/login/index.php @@ -327,6 +327,8 @@ if (isloggedin() and !isguestuser()) { echo $OUTPUT->box_end(); } else { include("index_form.html"); + //focus username or password + $PAGE->requires->js_init_call('M.util.focus_login_form', null, true); } echo $OUTPUT->footer(); -- 2.43.0