WordPress/wp-admin/js/user-profile.min.js
Pascal Birchler 5fa8ea8c6b Passwords: Hide weak password confirmation checkbox when password strength improves.
Props subharanjan for initial patch.
Fixes #34950.
Built from https://develop.svn.wordpress.org/trunk@35870


git-svn-id: http://core.svn.wordpress.org/trunk@35834 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-12-11 21:54:27 +00:00

1 line
5.9 KiB
JavaScript

!function(a){function b(){"function"!=typeof zxcvbn?setTimeout(b,50):(j.val(j.data("pw")),j.trigger("pwupdate").trigger("wp-check-valid-field"),1!==parseInt(p.data("start-masked"),10)?i.addClass("show-password"):p.trigger("click"))}function c(){var c=a("#pass-strength-result")[0];s=j.val(),i=j.parent(),k=a('<input type="text"/>').attr({id:"pass1-text",name:"pass1-text",autocomplete:"off"}).addClass(j[0].className).data("pw",j.data("pw")).val(j.val()).on(t,function(){k.val()!==s&&(m.val(k.val()),j.val(k.val()).trigger("pwupdate"),s=k.val())}),j.after(k),1===parseInt(j.data("reveal"),10)&&b(),j.on(t+" pwupdate",function(){j.val()!==s&&(s=j.val(),k.val()!==s&&k.val(s),j.add(k).removeClass("short bad good strong"),c.className&&(j.add(k).addClass(c.className),"short"===c.className||"bad"===c.className?(o.prop("checked")||q.prop("disabled",!0),n.show()):(q.prop("disabled",!1),n.hide())))})}function d(){p.data("toggle",0).attr({"aria-label":userProfileL10n.ariaHide}).find(".text").text(userProfileL10n.hide).end().find(".dashicons").removeClass("dashicons-visibility").addClass("dashicons-hidden"),k.focus(),l.attr("for","pass1-text")}function e(){p=h.find(".wp-hide-pw"),p.show().on("click",function(){1===parseInt(p.data("toggle"),10)?(i.addClass("show-password"),d(),_.isUndefined(k[0].setSelectionRange)||k[0].setSelectionRange(0,100)):(i.removeClass("show-password"),p.data("toggle",1).attr({"aria-label":userProfileL10n.ariaShow}).find(".text").text(userProfileL10n.show).end().find(".dashicons").removeClass("dashicons-hidden").addClass("dashicons-visibility"),j.focus(),l.attr("for","pass1"),_.isUndefined(j[0].setSelectionRange)||j[0].setSelectionRange(0,100))})}function f(){var f,g,p;h=a(".user-pass1-wrap"),l=h.find("th label").attr("for","pass1-text"),a(".user-pass2-wrap").hide(),r=a("#submit").on("click",function(){u=!1}),q=r.add(" #createusersub"),n=a(".pw-weak"),o=n.find(".pw-checkbox"),o.change(function(){q.prop("disabled",!o.prop("checked"))}),j=a("#pass1"),j.length&&c(),m=a("#pass2").on(t,function(){m.val().length>0&&(j.val(m.val()),m.val(""),s="",j.trigger("pwupdate"))}),j.is(":hidden")&&(j.prop("disabled",!0),m.prop("disabled",!0),k.prop("disabled",!0)),f=h.find(".wp-pwd"),g=h.find("button.wp-generate-pw"),e(),g.length&&f.hide(),g.show(),g.on("click",function(){u=!0,g.hide(),f.show(),j.attr("disabled",!1),m.attr("disabled",!1),k.attr("disabled",!1),0===k.val().length&&b(),_.defer(function(){k.focus(),_.isUndefined(k[0].setSelectionRange)||k[0].setSelectionRange(0,100)},0)}),p=h.find("button.wp-cancel-pw"),p.on("click",function(){u=!1,k.val(""),wp.ajax.post("generate-password").done(function(a){j.data("pw",a)}),g.show(),f.hide(),n.hide(0,function(){o.removeProp("checked")}),j.prop("disabled",!0),m.prop("disabled",!0),k.prop("disabled",!0),d(),j.val("").trigger("pwupdate"),q.prop("disabled",!1)}),h.closest("form").on("submit",function(){u=!1,j.prop("disabled",!1),m.prop("disabled",!1),m.val(j.val()),i.removeClass("show-password")})}function g(){var b,c=a("#pass1").val();if(a("#pass-strength-result").removeClass("short bad good strong"),!c)return void a("#pass-strength-result").html("&nbsp;");switch(b=wp.passwordStrength.meter(c,wp.passwordStrength.userInputBlacklist(),c)){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n["short"])}}var h,i,j,k,l,m,n,o,p,q,r,s,t,u=!1;t="oninput"in document.createElement("input")?"input":"keyup",a(document).ready(function(){var b,c,d,e,h=a("#display_name");a("#pass1").val("").on(t+" pwupdate",g),a("#pass-strength-result").show(),a(".color-palette").click(function(){a(this).siblings('input[name="admin_color"]').prop("checked",!0)}),h.length&&a("#first_name, #last_name, #nickname").bind("blur.user_profile",function(){var b=[],c={display_nickname:a("#nickname").val()||"",display_username:a("#user_login").val()||"",display_firstname:a("#first_name").val()||"",display_lastname:a("#last_name").val()||""};c.display_firstname&&c.display_lastname&&(c.display_firstlast=c.display_firstname+" "+c.display_lastname,c.display_lastfirst=c.display_lastname+" "+c.display_firstname),a.each(a("option",h),function(a,c){b.push(c.value)}),a.each(c,function(d,e){if(e){var f=e.replace(/<\/?[a-z][^>]*>/gi,"");c[d].length&&-1===a.inArray(f,b)&&(b.push(f),a("<option />",{text:f}).appendTo(h))}})}),b=a("#color-picker"),c=a("#colors-css"),d=a("input#user_id").val(),e=a('input[name="checkuser_id"]').val(),b.on("click.colorpicker",".color-option",function(){var b,f=a(this);if(!f.hasClass("selected")&&(f.siblings(".selected").removeClass("selected"),f.addClass("selected").find('input[type="radio"]').prop("checked",!0),d===e)){if(0===c.length&&(c=a('<link rel="stylesheet" />').appendTo("head")),c.attr("href",f.children(".css_url").val()),"undefined"!=typeof wp&&wp.svgPainter){try{b=a.parseJSON(f.children(".icon_colors").val())}catch(g){}b&&(wp.svgPainter.setColors(b),wp.svgPainter.paint())}a.post(ajaxurl,{action:"save-user-color-scheme",color_scheme:f.children('input[name="admin_color"]').val(),nonce:a("#color-nonce").val()}).done(function(b){b.success&&a("body").removeClass(b.data.previousScheme).addClass(b.data.currentScheme)})}}),f()}),a("#destroy-sessions").on("click",function(b){var c=a(this);wp.ajax.post("destroy-sessions",{nonce:a("#_wpnonce").val(),user_id:a("#user_id").val()}).done(function(a){c.prop("disabled",!0),c.siblings(".notice").remove(),c.before('<div class="notice notice-success inline"><p>'+a.message+"</p></div>")}).fail(function(a){c.siblings(".notice").remove(),c.before('<div class="notice notice-error inline"><p>'+a.message+"</p></div>")}),b.preventDefault()}),window.generatePassword=b,a(window).on("beforeunload",function(){return!0===u?userProfileL10n.warn:void 0})}(jQuery);