Skip to content

Commit

Permalink
MDL-57488 js: remove M.util.focus_login_form/error
Browse files Browse the repository at this point in the history
These are replaced by some simple jquery instead.
  • Loading branch information
danpoltawski committed Jan 15, 2017
1 parent d97582f commit 97ac35c
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 42 deletions.
37 changes: 8 additions & 29 deletions lib/javascript-static.js
Original file line number Diff line number Diff line change
Expand Up @@ -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.
*
Expand Down
14 changes: 8 additions & 6 deletions lib/templates/login.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -162,18 +162,20 @@
</div>

{{#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}}
2 changes: 2 additions & 0 deletions lib/upgrade.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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 ===

Expand Down
15 changes: 8 additions & 7 deletions theme/boost/templates/core/login.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -216,20 +216,21 @@
</div>
{{/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}}

0 comments on commit 97ac35c

Please sign in to comment.