<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><style type="text/css"><!--
#msg dl { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fc0 solid; padding: 6px; }
#msg ul, pre { overflow: auto; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<title>[15998] trunk:
  Bring back a seperate js file for the password strength meter and correctly mark it as a dependancy of the user profile code
 .</title>
</head>
<body>

<div id="msg">
<dl>
<dt>Revision</dt> <dd><a href="http://trac.wordpress.org/changeset/15998">15998</a></dd>
<dt>Author</dt> <dd>westi</dd>
<dt>Date</dt> <dd>2010-10-27 06:39:20 +0000 (Wed, 27 Oct 2010)</dd>
</dl>

<h3>Log Message</h3>
<pre>Bring back a seperate js file for the password strength meter and correctly mark it as a dependancy of the user profile code. See <a href="http://trac.wordpress.org/ticket/5919">#5919</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkwpadmininstallphp">trunk/wp-admin/install.php</a></li>
<li><a href="#trunkwpadminjsuserprofiledevjs">trunk/wp-admin/js/user-profile.dev.js</a></li>
<li><a href="#trunkwpadminjsuserprofilejs">trunk/wp-admin/js/user-profile.js</a></li>
<li><a href="#trunkwpincludesscriptloaderphp">trunk/wp-includes/script-loader.php</a></li>
<li><a href="#trunkwploginphp">trunk/wp-login.php</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkwpadminjspasswordstrengthmeterdevjs">trunk/wp-admin/js/password-strength-meter.dev.js</a></li>
<li><a href="#trunkwpadminjspasswordstrengthmeterjs">trunk/wp-admin/js/password-strength-meter.js</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkwpadmininstallphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/install.php (15997 => 15998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/install.php        2010-10-27 02:23:57 UTC (rev 15997)
+++ trunk/wp-admin/install.php        2010-10-27 06:39:20 UTC (rev 15998)
</span><span class="lines">@@ -244,6 +244,7 @@
</span><span class="cx"> ?&gt;
</span><span class="cx"> &lt;script type=&quot;text/javascript&quot;&gt;var t = document.getElementById('weblog_title'); if (t){ t.focus(); }&lt;/script&gt;
</span><span class="cx"> &lt;script type=&quot;text/javascript&quot; src=&quot;../wp-includes/js/jquery/jquery.js&quot;&gt;&lt;/script&gt;
</span><ins>+&lt;script type=&quot;text/javascript&quot; src=&quot;js/password-strength-meter.js&quot;&gt;&lt;/script&gt;
</ins><span class="cx"> &lt;script type=&quot;text/javascript&quot; src=&quot;js/user-profile.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script type=&quot;text/javascript&quot; src=&quot;js/utils.js&quot;&gt;&lt;/script&gt;
</span><span class="cx"> &lt;script type='text/javascript'&gt;
</span></span></pre></div>
<a id="trunkwpadminjspasswordstrengthmeterdevjsfromrev15779trunkwpadminjspasswordstrengthmeterdevjs"></a>
<div class="copfile"><h4>Copied: trunk/wp-admin/js/password-strength-meter.dev.js (from rev 15779, trunk/wp-admin/js/password-strength-meter.dev.js) (0 => 15998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/password-strength-meter.dev.js                                (rev 0)
+++ trunk/wp-admin/js/password-strength-meter.dev.js        2010-10-27 06:39:20 UTC (rev 15998)
</span><span class="lines">@@ -0,0 +1,36 @@
</span><ins>+// Password strength meter
+function passwordStrength(password1, username, password2) {
+        var shortPass = 1, badPass = 2, goodPass = 3, strongPass = 4, mismatch = 5, symbolSize = 0, natLog, score;
+
+        // password 1 != password 2
+        if ( (password1 != password2) &amp;&amp; password2.length &gt; 0)
+                return mismatch
+
+        //password &lt; 4
+        if ( password1.length &lt; 4 )
+                return shortPass
+
+        //password1 == username
+        if ( password1.toLowerCase() == username.toLowerCase() )
+                return badPass;
+
+        if ( password1.match(/[0-9]/) )
+                symbolSize +=10;
+        if ( password1.match(/[a-z]/) )
+                symbolSize +=26;
+        if ( password1.match(/[A-Z]/) )
+                symbolSize +=26;
+        if ( password1.match(/[^a-zA-Z0-9]/) )
+                symbolSize +=31;
+
+        natLog = Math.log( Math.pow(symbolSize, password1.length) );
+        score = natLog / Math.LN2;
+
+        if (score &lt; 40 )
+                return badPass
+
+        if (score &lt; 56 )
+                return goodPass
+
+    return strongPass;
+}
</ins></span></pre></div>
<a id="trunkwpadminjspasswordstrengthmeterjsfromrev15779trunkwpadminjspasswordstrengthmeterjs"></a>
<div class="copfile"><h4>Copied: trunk/wp-admin/js/password-strength-meter.js (from rev 15779, trunk/wp-admin/js/password-strength-meter.js) (0 => 15998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/password-strength-meter.js                                (rev 0)
+++ trunk/wp-admin/js/password-strength-meter.js        2010-10-27 06:39:20 UTC (rev 15998)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+function passwordStrength(f,i,d){var k=1,h=2,b=3,a=4,c=5,g=0,j,e;if((f!=d)&amp;&amp;d.length&gt;0){return c}if(f.length&lt;4){return k}if(f.toLowerCase()==i.toLowerCase()){return h}if(f.match(/[0-9]/)){g+=10}if(f.match(/[a-z]/)){g+=26}if(f.match(/[A-Z]/)){g+=26}if(f.match(/[^a-zA-Z0-9]/)){g+=31}j=Math.log(Math.pow(g,f.length));e=j/Math.LN2;if(e&lt;40){return h}if(e&lt;56){return b}return a};
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkwpadminjsuserprofiledevjs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/user-profile.dev.js (15997 => 15998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/user-profile.dev.js        2010-10-27 02:23:57 UTC (rev 15997)
+++ trunk/wp-admin/js/user-profile.dev.js        2010-10-27 06:39:20 UTC (rev 15998)
</span><span class="lines">@@ -1,41 +1,5 @@
</span><span class="cx"> (function($){
</span><span class="cx"> 
</span><del>-        function passwordStrength(password1, username, password2) {
-                var shortPass = 1, badPass = 2, goodPass = 3, strongPass = 4, mismatch = 5, symbolSize = 0, natLog, score;
-
-                // password 1 != password 2
-                if ( (password1 != password2) &amp;&amp; password2.length &gt; 0)
-                        return mismatch
-
-                //password &lt; 4
-                if ( password1.length &lt; 4 )
-                        return shortPass
-
-                //password1 == username
-                if ( password1.toLowerCase() == username.toLowerCase() )
-                        return badPass;
-
-                if ( password1.match(/[0-9]/) )
-                        symbolSize +=10;
-                if ( password1.match(/[a-z]/) )
-                        symbolSize +=26;
-                if ( password1.match(/[A-Z]/) )
-                        symbolSize +=26;
-                if ( password1.match(/[^a-zA-Z0-9]/) )
-                        symbolSize +=31;
-
-                natLog = Math.log( Math.pow(symbolSize, password1.length) );
-                score = natLog / Math.LN2;
-
-                if (score &lt; 40 )
-                        return badPass
-
-                if (score &lt; 56 )
-                        return goodPass
-
-                return strongPass;
-        }
-
</del><span class="cx">         function check_pass_strength() {
</span><span class="cx">                 var pass1 = $('#pass1').val(), user = $('#user_login').val(), pass2 = $('#pass2').val(), strength;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkwpadminjsuserprofilejs"></a>
<div class="modfile"><h4>Modified: trunk/wp-admin/js/user-profile.js (15997 => 15998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-admin/js/user-profile.js        2010-10-27 02:23:57 UTC (rev 15997)
+++ trunk/wp-admin/js/user-profile.js        2010-10-27 06:39:20 UTC (rev 15998)
</span><span class="lines">@@ -1 +1 @@
</span><del>-(function(b){function a(i,l,g){var n=1,k=2,e=3,d=4,f=5,j=0,m,h;if((i!=g)&amp;&amp;g.length&gt;0){return f}if(i.length&lt;4){return n}if(i.toLowerCase()==l.toLowerCase()){return k}if(i.match(/[0-9]/)){j+=10}if(i.match(/[a-z]/)){j+=26}if(i.match(/[A-Z]/)){j+=26}if(i.match(/[^a-zA-Z0-9]/)){j+=31}m=Math.log(Math.pow(j,i.length));h=m/Math.LN2;if(h&lt;40){return k}if(h&lt;56){return e}return d}function c(){var f=b(&quot;#pass1&quot;).val(),e=b(&quot;#user_login&quot;).val(),d=b(&quot;#pass2&quot;).val(),g;b(&quot;#pass-strength-result&quot;).removeClass(&quot;short bad good strong&quot;);if(!f){b(&quot;#pass-strength-result&quot;).html(pwsL10n.empty);return}g=a(f,e,d);switch(g){case 2:b(&quot;#pass-strength-result&quot;).addClass(&quot;bad&quot;).html(pwsL10n.bad);break;case 3:b(&quot;#pass-strength-result&quot;).addClass(&quot;good&quot;).html(pwsL10n.good);break;case 4:b(&quot;#pass-strength-result&quot;).addClass(&quot;strong&quot;).html(pwsL10n.strong);break;case 5:b(&quot;#pass-strength-result&quot;).addClass(&quot;short&quot;).html(pwsL10n.mismatch);break;default:b(&quot;#pass-strength-result&quot;).addClass(&quot;short&quot;).html(pwsL10n[&quot;short&quot;])}}b(document).ready(function(){b(&quot;#pass1&quot;).val(&quot;&quot;).keyup(c);b(&quot;#pass2&quot;).val(&quot;&quot;).keyup(c);b(&quot;#pass-strength-result&quot;).show();b(&quot;.color-palette&quot;).click(function(){b(this).siblings(&quot;input[name=admin_color]&quot;).attr(&quot;checked&quot;,&quot;checked&quot;)});b(&quot;#nickname&quot;).blur(function(){var f=b(this).val()||b(&quot;#user_login&quot;).val();var d=b(&quot;#display_name&quot;);var e=d.children(&quot;option:selected&quot;).attr(&quot;id&quot;);d.children(&quot;#display_nickname&quot;).remove();if(!d.children(&quot;option[value=&quot;+f+&quot;]&quot;).length){d.append('&lt;option id=&quot;display_nickname&quot; value=&quot;'+f+'&quot;&gt;'+f+&quot;&lt;/option&gt;&quot;)}b(&quot;#&quot;+e).attr(&quot;selected&quot;,&quot;selected&quot;)});b(&quot;#first_name, #last_name&quot;).blur(function(){var d=b(&quot;#display_name&quot;);var g=b(&quot;#first_name&quot;).val(),e=b(&quot;#last_name&quot;).val();var f=d.children(&quot;option:selected&quot;).attr(&quot;id&quot;);b(&quot;#display_firstname, #display_lastname, #display_firstlast, #display_lastfirst&quot;).remove();if(g&amp;&amp;!d.children(&quot;option[value=&quot;+g+&quot;]&quot;).length){d.append('&lt;option id=&quot;display_firstname&quot; value=&quot;'+g+'&quot;&gt;'+g+&quot;&lt;/option&gt;&quot;)}if(e&amp;&amp;!d.children(&quot;option[value=&quot;+e+&quot;]&quot;).length){d.append('&lt;option id=&quot;display_lastname&quot; value=&quot;'+e+'&quot;&gt;'+e+&quot;&lt;/option&gt;&quot;)}if(g&amp;&amp;e){if(!d.children(&quot;option[value=&quot;+g+&quot; &quot;+e+&quot;]&quot;).length){d.append('&lt;option id=&quot;display_firstlast&quot; value=&quot;'+g+&quot; &quot;+e+'&quot;&gt;'+g+&quot; &quot;+e+&quot;&lt;/option&gt;&quot;)}if(!d.children(&quot;option[value=&quot;+e+&quot; &quot;+g+&quot;]&quot;).length){d.append('&lt;option id=&quot;display_lastfirst&quot; value=&quot;'+e+&quot; &quot;+g+'&quot;&gt;'+e+&quot; &quot;+g+&quot;&lt;/option&gt;&quot;)}}b(&quot;#&quot;+f).attr(&quot;selected&quot;,&quot;selected&quot;)})})})(jQuery);
</del><span class="cx">\ No newline at end of file
</span><ins>+(function($){function check_pass_strength(){var pass1=$(&quot;#pass1&quot;).val(),user=$(&quot;#user_login&quot;).val(),pass2=$(&quot;#pass2&quot;).val(),strength;$(&quot;#pass-strength-result&quot;).removeClass(&quot;short bad good strong&quot;);if(!pass1){$(&quot;#pass-strength-result&quot;).html(pwsL10n.empty);return}strength=passwordStrength(pass1,user,pass2);switch(strength){case 2:$(&quot;#pass-strength-result&quot;).addClass(&quot;bad&quot;).html(pwsL10n.bad);break;case 3:$(&quot;#pass-strength-result&quot;).addClass(&quot;good&quot;).html(pwsL10n.good);break;case 4:$(&quot;#pass-strength-result&quot;).addClass(&quot;strong&quot;).html(pwsL10n.strong);break;case 5:$(&quot;#pass-strength-result&quot;).addClass(&quot;short&quot;).html(pwsL10n.mismatch);break;default:$(&quot;#pass-strength-result&quot;).addClass(&quot;short&quot;).html(pwsL10n[&quot;short&quot;])}}$(document).ready(function(){$(&quot;#pass1&quot;).val(&quot;&quot;).keyup(check_pass_strength);$(&quot;#pass2&quot;).val(&quot;&quot;).keyup(check_pass_strength);$(&quot;#pass-strength-result&quot;).show();$(&quot;.color-palette&quot;).click(function(){$(this).siblings(&quot;input[name=admin_color]&quot;).attr(&quot;checked&quot;,&quot;checked&quot;)});$(&quot;#nickname&quot;).blur(function(){var str=$(this).val()||$(&quot;#user_login&quot;).val();var select=$(&quot;#display_name&quot;);var sel=select.children(&quot;option:selected&quot;).attr(&quot;id&quot;);select.children(&quot;#display_nickname&quot;).remove();if(!select.children(&quot;option[value=&quot;+str+&quot;]&quot;).length){select.append('&lt;option id=&quot;display_nickname&quot; value=&quot;'+str+'&quot;&gt;'+str+&quot;&lt;/option&gt;&quot;)}$(&quot;#&quot;+sel).attr(&quot;selected&quot;,&quot;selected&quot;)});$(&quot;#first_name, #last_name&quot;).blur(function(){var select=$(&quot;#display_name&quot;);var first=$(&quot;#first_name&quot;).val(),last=$(&quot;#last_name&quot;).val();var sel=select.children(&quot;option:selected&quot;).attr(&quot;id&quot;);$(&quot;#display_firstname, #display_lastname, #display_firstlast, #display_lastfirst&quot;).remove();if(first&amp;&amp;!select.children(&quot;option[value=&quot;+first+&quot;]&quot;).length){select.append('&lt;option id=&quot;display_firstname&quot; value=&quot;'+first+'&quot;&gt;'+first+&quot;&lt;/option&gt;&quot;)}if(last&amp;&amp;!select.children(&quot;option[value=&quot;+last+&quot;]&quot;).length){select.append('&lt;option id=&quot;display_lastname&quot; value=&quot;'+last+'&quot;&gt;'+last+&quot;&lt;/option&gt;&quot;)}if(first&amp;&amp;last){if(!select.children(&quot;option[value=&quot;+first+&quot; &quot;+last+&quot;]&quot;).length){select.append('&lt;option id=&quot;display_firstlast&quot; value=&quot;'+first+&quot; &quot;+last+'&quot;&gt;'+first+&quot; &quot;+last+&quot;&lt;/option&gt;&quot;)}if(!select.children(&quot;option[value=&quot;+last+&quot; &quot;+first+&quot;]&quot;).length){select.append('&lt;option id=&quot;display_lastfirst&quot; value=&quot;'+last+&quot; &quot;+first+'&quot;&gt;'+last+&quot; &quot;+first+&quot;&lt;/option&gt;&quot;)}}$(&quot;#&quot;+sel).attr(&quot;selected&quot;,&quot;selected&quot;)})})})(jQuery);
</ins><span class="cx">\ No newline at end of file
</span></span></pre></div>
<a id="trunkwpincludesscriptloaderphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-includes/script-loader.php (15997 => 15998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-includes/script-loader.php        2010-10-27 02:23:57 UTC (rev 15997)
+++ trunk/wp-includes/script-loader.php        2010-10-27 06:39:20 UTC (rev 15998)
</span><span class="lines">@@ -262,9 +262,9 @@
</span><span class="cx">                 $scripts-&gt;add( 'admin-custom-fields', &quot;/wp-admin/js/custom-fields$suffix.js&quot;, array('wp-lists'), '20090106' );
</span><span class="cx">                 $scripts-&gt;add_data( 'admin-custom-fields', 'group', 1 );
</span><span class="cx"> 
</span><del>-                $scripts-&gt;add( 'user-profile', &quot;/wp-admin/js/user-profile$suffix.js&quot;, array('jquery'), '20101012' );
-                $scripts-&gt;add_data( 'user-profile', 'group', 1 );
-                $scripts-&gt;localize( 'user-profile', 'pwsL10n', array(
</del><ins>+                $scripts-&gt;add( 'password-strength-meter', &quot;/wp-admin/js/password-strength-meter$suffix.js&quot;, array('jquery'), '20101027' );
+                $scripts-&gt;add_data( 'password-strength-meter', 'group', 1 );
+                $scripts-&gt;localize( 'password-strength-meter', 'pwsL10n', array(
</ins><span class="cx">                         'empty' =&gt; __('Strength indicator'),
</span><span class="cx">                         'short' =&gt; __('Very weak'),
</span><span class="cx">                         'bad' =&gt; __('Weak'),
</span><span class="lines">@@ -275,6 +275,9 @@
</span><span class="cx">                         'l10n_print_after' =&gt; 'try{convertEntities(pwsL10n);}catch(e){};'
</span><span class="cx">                 ) );
</span><span class="cx"> 
</span><ins>+                $scripts-&gt;add( 'user-profile', &quot;/wp-admin/js/user-profile$suffix.js&quot;, array( 'jquery', 'password-strength-meter' ), '20100925' );
+                $scripts-&gt;add_data( 'user-profile', 'group', 1 );
+
</ins><span class="cx">                 $scripts-&gt;add( 'admin-comments', &quot;/wp-admin/js/edit-comments$suffix.js&quot;, array('wp-lists', 'list-table', 'jquery-ui-resizable', 'quicktags'), '20100818' );
</span><span class="cx">                 $scripts-&gt;add_data( 'admin-comments', 'group', 1 );
</span><span class="cx">                 $scripts-&gt;localize( 'admin-comments', 'adminCommentsL10n', array(
</span></span></pre></div>
<a id="trunkwploginphp"></a>
<div class="modfile"><h4>Modified: trunk/wp-login.php (15997 => 15998)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-login.php        2010-10-27 02:23:57 UTC (rev 15997)
+++ trunk/wp-login.php        2010-10-27 06:39:20 UTC (rev 15998)
</span><span class="lines">@@ -341,8 +341,9 @@
</span><span class="cx"> 
</span><span class="cx">         $suffix = defined('SCRIPT_DEBUG') &amp;&amp; SCRIPT_DEBUG ? '.dev' : '';
</span><span class="cx"> 
</span><del>-        wp_enqueue_script( 'user-profile', $guessurl . &quot;/wp-admin/js/user-profile$suffix.js&quot;, array('jquery'), '20100331' );
-        wp_localize_script( 'user-profile', 'pwsL10n', array(
</del><ins>+        wp_enqueue_script( 'user-profile', $guessurl . &quot;/wp-admin/js/user-profile$suffix.js&quot;, array( 'jquery', 'password-strength-meter' ), '20100925' );
+        wp_enqueue_script( 'password-strength-meter', $guessurl . &quot;/wp-admin/js/password-strength-meter$suffix.js&quot;, array('jquery'), '20101027' );
+        wp_localize_script( 'password-strength-meter', 'pwsL10n', array(
</ins><span class="cx">                 'empty' =&gt; __('Strength indicator'),
</span><span class="cx">                 'short' =&gt; __('Very weak'),
</span><span class="cx">                 'bad' =&gt; __('Weak'),
</span></span></pre>
</div>
</div>

</body>
</html>