Commit 7c2bcffa authored by Dries's avatar Dries

- Patch #788166 by TR: password_confirm() element breaks if there is more than 1 on a page.

parent 18516bd9
......@@ -204,7 +204,7 @@ dl.multiselect .form-item {
/**
* Password strength indicator
*/
#password-strength {
.password-strength {
width: 17em;
float: right; /* LTR */
margin-top: 1.4em;
......@@ -212,16 +212,16 @@ dl.multiselect .form-item {
.password-strength-title {
display: inline;
}
#password-strength-text {
.password-strength-text {
float: right; /* LTR */
font-weight: bold;
}
#password-indicator {
.password-indicator {
background-color: #C4C4C4;
height: 0.3em;
width: 100%;
}
#password-indicator div {
.password-indicator div {
height: 100%;
width: 0%;
background-color: #47C965;
......
......@@ -13,9 +13,7 @@ Drupal.behaviors.password = {
var innerWrapper = $(this).parent();
var outerWrapper = $(this).parent().parent();
// Add the password strength layers.
var passwordStrength = $('span.password-strength', innerWrapper);
var passwordResult = $('span.password-result', passwordStrength);
// Add identifying class to password element parent.
innerWrapper.addClass('password-parent');
// Add the password confirmation layer.
......@@ -25,10 +23,10 @@ Drupal.behaviors.password = {
var confirmChild = $('span', confirmResult);
// Add the description box.
var passwordMeter = '<div id="password-strength"><div id="password-strength-text" aria-live="assertive"></div><div class="password-strength-title">' + translate.strengthTitle + '</div><div id="password-indicator"><div id="indicator"></div></div></div>';
var passwordMeter = '<div class="password-strength"><div class="password-strength-text" aria-live="assertive"></div><div class="password-strength-title">' + translate['strengthTitle'] + '</div><div class="password-indicator"><div class="indicator"></div></div></div>';
$(confirmInput).parent().after('<div class="password-suggestions description"></div>');
$(innerWrapper).prepend(passwordMeter);
var passwordDescription = $("div.password-suggestions", outerWrapper).hide();
var passwordDescription = $('div.password-suggestions', outerWrapper).hide();
// Check the password strength.
var passwordCheck = function () {
......@@ -50,10 +48,10 @@ Drupal.behaviors.password = {
}
// Adjust the length of the strength indicator.
$('#indicator').css('width', result.strength + '%');
$(innerWrapper).find('.indicator').css('width', result.strength + '%');
// Update the strength indication text.
$("#password-strength-text").html(result.indicatorText);
$(innerWrapper).find('.password-strength-text').html(result.indicatorText);
passwordCheckMatch();
};
......
......@@ -3361,7 +3361,12 @@ function user_form_process_password_confirm($element) {
);
$element['#attached']['js'][] = drupal_get_path('module', 'user') . '/user.js';
$element['#attached']['js'][] = array('data' => $js_settings, 'type' => 'setting');
// Ensure settings are only added once per page.
static $already_added = FALSE;
if (!$already_added) {
$already_added = TRUE;
$element['#attached']['js'][] = array('data' => $js_settings, 'type' => 'setting');
}
return $element;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment