From 7c2bcffab133d360d99ed805474dac7076a3d550 Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Tue, 20 Jul 2010 10:17:59 +0000 Subject: - Patch #788166 by TR: password_confirm() element breaks if there is more than 1 on a page. --- modules/user/user.js | 12 +++++------- modules/user/user.module | 7 ++++++- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'modules/user') diff --git a/modules/user/user.js b/modules/user/user.js index eab73495e..50bb84981 100644 --- a/modules/user/user.js +++ b/modules/user/user.js @@ -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 = '
' + translate.strengthTitle + '
'; + var passwordMeter = '
' + translate['strengthTitle'] + '
'; $(confirmInput).parent().after('
'); $(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(); }; diff --git a/modules/user/user.module b/modules/user/user.module index c07aa1461..3b3c6b2b4 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -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; } -- cgit v1.2.3