diff --git a/lib/javascript-static.js b/lib/javascript-static.js index 9c7de46f766..b8676e122d4 100644 --- a/lib/javascript-static.js +++ b/lib/javascript-static.js @@ -812,42 +812,21 @@ M.util.get_string = function(identifier, component, a) { }; /** - * Set focus on username or password field of the login form + * Set focus on username or password field of the login form. + * @deprecated since Moodle 3.3. */ 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(); - } -} + Y.log('M.util.focus_login_form no longer does anything. Please use jquery instead.', 'warn', 'javascript-static.js'); +}; /** - * Set focus on login error message + * Set focus on login error message. + * @deprecated since Moodle 3.3. */ M.util.focus_login_error = function(Y) { - var errorlog = Y.one('#loginerrormessage'); + Y.log('M.util.focus_login_error no longer does anything. Please use jquery instead.', 'warn', 'javascript-static.js'); +}; - if (errorlog) { - errorlog.focus(); - } -} /** * Adds lightbox hidden element that covers the whole node. * diff --git a/lib/templates/login.mustache b/lib/templates/login.mustache index 3ee5e2a02b6..fa5836f1787 100644 --- a/lib/templates/login.mustache +++ b/lib/templates/login.mustache @@ -162,18 +162,20 @@ {{#js}} - require(['jquery', 'core/yui'], function($, Y) { {{#error}} - $(function() { - M.util.focus_login_error(Y); + require(['jquery'], function($) { + $('#loginerrormessage').focus(); }); {{/error}} {{^error}} {{#autofocusform}} - $(function() { - M.util.focus_login_form(Y); + require(['jquery'], function($) { + if ($('#username').val()) { + $('#password').focus(); + } else { + $('#username').focus(); + } }); {{/autofocusform}} {{/error}} - }); {{/js}} diff --git a/lib/upgrade.txt b/lib/upgrade.txt index 83df38e16b8..1b7a6e37310 100644 --- a/lib/upgrade.txt +++ b/lib/upgrade.txt @@ -8,6 +8,8 @@ information provided here is intended especially for developers. * $mform->init_javascript_enhancement() is deprecated and no longer does anything. Existing uses of smartselect enhancement should be switched to the searchableselector form element or other solutions. * Return value of the validate_email() is now proper boolean as documented. Previously the function could return 1, 0 or false. +* M.util.focus_login_form and M.util.focus_login_error no longer do anything. Please use jquery instead. See + lib/templates/login.mustache for an example. === 3.2 === diff --git a/theme/boost/templates/core/login.mustache b/theme/boost/templates/core/login.mustache index ad8f240a1da..22e0a231354 100644 --- a/theme/boost/templates/core/login.mustache +++ b/theme/boost/templates/core/login.mustache @@ -216,20 +216,21 @@ {{/hasinstructions}} - {{#js}} - require(['jquery', 'core/yui'], function($, Y) { {{#error}} - $(function() { - M.util.focus_login_error(Y); + require(['jquery'], function($) { + $('#loginerrormessage').focus(); }); {{/error}} {{^error}} {{#autofocusform}} - $(function() { - M.util.focus_login_form(Y); + require(['jquery'], function($) { + if ($('#username').val()) { + $('#password').focus(); + } else { + $('#username').focus(); + } }); {{/autofocusform}} {{/error}} - }) {{/js}}