1
0
mirror of https://github.com/processwire/processwire.git synced 2025-08-12 09:44:38 +02:00
This commit is contained in:
Ryan Cramer
2020-08-11 07:07:31 -04:00
parent 7dfd5af072
commit b1785277a2
2 changed files with 14 additions and 11 deletions

View File

@@ -14,6 +14,7 @@ jQuery(document).ready(function($) {
var $scores = $wrapScores.children();
var requirements = $wrapScores.attr('data-requirements').split(' ');
var minlength = parseInt($input.attr('data-minlength'));
var inputOldEvent;
var options = {
banMode: $input.attr('data-banMode'),
strengthScaleFactor: parseFloat($input.attr('data-factor')),
@@ -22,12 +23,13 @@ jQuery(document).ready(function($) {
if($inputOld.length) {
$input.attr('disabled', 'disabled');
$inputOld.on('keyup', function() {
inputOldEvent = function() {
if($(this).val().length > 0) {
$inputOld.off('keyup');
$inputOld.off('keyup input change blur', inputOldEvent);
$input.removeAttr('disabled');
}
});
};
$inputOld.on('keyup input change blur', inputOldEvent);
}
if($confirm.length) $confirm.attr('disabled', 'disabled');
@@ -46,25 +48,26 @@ jQuery(document).ready(function($) {
var fail = false;
var requirement = requirements[n];
var $requirement = $inputfield.find('.pass-require-' + requirement);
var re;
if(requirement == 'letter') {
var re = XRegExp("\\p{L}");
re = XRegExp("\\p{L}");
if(!re.test(val)) fail = true;
} else if(requirement == 'upper') {
var re = XRegExp("\\p{Lu}");
re = XRegExp("\\p{Lu}");
if(!re.test(val)) fail = true;
} else if(requirement == 'lower') {
var re = XRegExp("\\p{Ll}");
re = XRegExp("\\p{Ll}");
if(!re.test(val)) fail = true;
} else if(requirement == 'digit') {
var re = XRegExp("\\p{N}");
re = XRegExp("\\p{N}");
if(!re.test(val)) fail = true;
} else if(requirement == 'other') {
var re = XRegExp("\\p{P}");
re = XRegExp("\\p{P}");
var rx = XRegExp("\\p{S}");
if(!re.test(val) && !rx.test(val)) fail = true;
} else if(requirement == 'space') {
var re = XRegExp("\\p{Z}");
re = XRegExp("\\p{Z}");
if(!re.test(val)) fail = true;
} else if(requirement == 'minlength') {
if(len < minlength) fail = true;

View File

@@ -1 +1 @@
jQuery(document).ready(function(c){var a=c("input.InputfieldPasswordComplexify");a.each(function(){var k=c(this);var d=k.closest(".Inputfield");var j=d.find(".InputfieldPasswordConfirm");var h=j.next(".pass-confirm");var i=d.find("input.InputfieldPasswordOld");var l=k.siblings(".pass-scores");var e=k.siblings(".pass-percent");var m=l.children();var g=l.attr("data-requirements").split(" ");var f=parseInt(k.attr("data-minlength"));var n={banMode:k.attr("data-banMode"),strengthScaleFactor:parseFloat(k.attr("data-factor")),minimumChars:f};if(i.length){k.attr("disabled","disabled");i.on("keyup",function(){if(c(this).val().length>0){i.off("keyup");k.removeAttr("disabled")}})}if(j.length){j.attr("disabled","disabled")}k.complexify(n,function(o,p){var u=null;var s=k.val();var v=s.length;var x=0;if(v>0){for(var r=0;r<g.length;r++){var t=false;var z=g[r];var w=d.find(".pass-require-"+z);if(z=="letter"){var y=XRegExp("\\p{L}");if(!y.test(s)){t=true}}else{if(z=="upper"){var y=XRegExp("\\p{Lu}");if(!y.test(s)){t=true}}else{if(z=="lower"){var y=XRegExp("\\p{Ll}");if(!y.test(s)){t=true}}else{if(z=="digit"){var y=XRegExp("\\p{N}");if(!y.test(s)){t=true}}else{if(z=="other"){var y=XRegExp("\\p{P}");var q=XRegExp("\\p{S}");if(!y.test(s)&&!q.test(s)){t=true}}else{if(z=="space"){var y=XRegExp("\\p{Z}");if(!y.test(s)){t=true}}else{if(z=="minlength"){if(v<f){t=true}}}}}}}}if(t){w.removeClass("pass-require-good ui-priority-secondary")}else{w.addClass("pass-require-good ui-priority-secondary");x++}}}else{d.find(".pass-require-good").removeClass("pass-require-good ui-priority-secondary")}if(v==0){m.removeClass("on");return}else{if(i.length&&i.val()===k.val()){u=m.filter(".pass-same")}else{if(x<g.length){u=m.filter(".pass-fail")}else{if(v<f){u=m.filter(".pass-short")}else{if(!o){u=m.filter(".pass-common")}else{if(p==0){u=m.filter(".pass-invalid")}else{if(p<50){u=m.filter(".pass-weak")}else{if(p<70){u=m.filter(".pass-medium")}else{if(p<100){u=m.filter(".pass-good")}else{if(p==100){u=m.filter(".pass-excellent")}}}}}}}}}}if(u&&!u.hasClass("on")){u.siblings(".on").removeClass("on");u.addClass("on")}if(u.hasClass("pass-fail")||u.hasClass("pass-short")||u.hasClass("pass-common")||u.hasClass("pass-invalid")||u.hasClass("pass-same")){j.attr("disabled","disabled").val("").change()}else{j.removeAttr("disabled");u.find("small").remove();u.append("<small style='margin-left:0.5em'>("+Math.floor(p)+"%)</small>")}if(j.val().length){j.change()}});k.on("change",function(){var o=c(this).val();if(o.length>0){k.attr("required","required");j.attr("required","required")}else{if(!c(this).closest(".InputfieldStateRequired").length){k.removeAttr("required");j.removeAttr("required")}}});j.on("keyup change",function(){var r=k.val();var q=c(this).val();var o=null;var p=k.closest("p").removeClass("pass-matches");if(q.length==0){o=h.children(".confirm-pending")}else{if(r==q){o=h.children(".confirm-yes");p.addClass("pass-matches")}else{if(r.indexOf(q)===0){o=h.children(".confirm-qty");o.children("span").html(q.length+"/"+r.length)}else{o=h.children(".confirm-no")}}}if(o){o.addClass("on").siblings(".on").removeClass("on")}})});var b=c(".InputfieldPassword").find("input[autocomplete='new-password']");if(b.length){setTimeout(function(){b.each(function(){if(c(this).val().length<1||c(this).attr("value").length>0){return}c(this).val("").trigger("keyup").change().closest(".Inputfield").removeClass("InputfieldStateChanged")})},1000)}});
jQuery(document).ready(function($){var $inputs=$("input.InputfieldPasswordComplexify");$inputs.each(function(){var $input=$(this);var $inputfield=$input.closest(".Inputfield");var $confirm=$inputfield.find(".InputfieldPasswordConfirm");var $confirms=$confirm.next(".pass-confirm");var $inputOld=$inputfield.find("input.InputfieldPasswordOld");var $wrapScores=$input.siblings(".pass-scores");var $percent=$input.siblings(".pass-percent");var $scores=$wrapScores.children();var requirements=$wrapScores.attr("data-requirements").split(" ");var minlength=parseInt($input.attr("data-minlength"));var inputOldEvent;var options={banMode:$input.attr("data-banMode"),strengthScaleFactor:parseFloat($input.attr("data-factor")),minimumChars:minlength};if($inputOld.length){$input.attr("disabled","disabled");inputOldEvent=function(){if($(this).val().length>0){$inputOld.off("keyup input change blur",inputOldEvent);$input.removeAttr("disabled")}};$inputOld.on("keyup input change blur",inputOldEvent)}if($confirm.length)$confirm.attr("disabled","disabled");$input.complexify(options,function(valid,complexity){var $on=null;var val=$input.val();var len=val.length;var numGood=0;if(len>0){for(var n=0;n<requirements.length;n++){var fail=false;var requirement=requirements[n];var $requirement=$inputfield.find(".pass-require-"+requirement);var re;if(requirement=="letter"){re=XRegExp("\\p{L}");if(!re.test(val))fail=true}else if(requirement=="upper"){re=XRegExp("\\p{Lu}");if(!re.test(val))fail=true}else if(requirement=="lower"){re=XRegExp("\\p{Ll}");if(!re.test(val))fail=true}else if(requirement=="digit"){re=XRegExp("\\p{N}");if(!re.test(val))fail=true}else if(requirement=="other"){re=XRegExp("\\p{P}");var rx=XRegExp("\\p{S}");if(!re.test(val)&&!rx.test(val))fail=true}else if(requirement=="space"){re=XRegExp("\\p{Z}");if(!re.test(val))fail=true}else if(requirement=="minlength"){if(len<minlength)fail=true}if(fail){$requirement.removeClass("pass-require-good ui-priority-secondary")}else{$requirement.addClass("pass-require-good ui-priority-secondary");numGood++}}}else{$inputfield.find(".pass-require-good").removeClass("pass-require-good ui-priority-secondary")}if(len==0){$scores.removeClass("on");return}else if($inputOld.length&&$inputOld.val()===$input.val()){$on=$scores.filter(".pass-same")}else if(numGood<requirements.length){$on=$scores.filter(".pass-fail")}else if(len<minlength){$on=$scores.filter(".pass-short")}else if(!valid){$on=$scores.filter(".pass-common")}else if(complexity==0){$on=$scores.filter(".pass-invalid")}else if(complexity<50){$on=$scores.filter(".pass-weak")}else if(complexity<70){$on=$scores.filter(".pass-medium")}else if(complexity<100){$on=$scores.filter(".pass-good")}else if(complexity==100){$on=$scores.filter(".pass-excellent")}if($on&&!$on.hasClass("on")){$on.siblings(".on").removeClass("on");$on.addClass("on")}if($on.hasClass("pass-fail")||$on.hasClass("pass-short")||$on.hasClass("pass-common")||$on.hasClass("pass-invalid")||$on.hasClass("pass-same")){$confirm.attr("disabled","disabled").val("").change()}else{$confirm.removeAttr("disabled");$on.find("small").remove();$on.append("<small style='margin-left:0.5em'>("+Math.floor(complexity)+"%)</small>")}if($confirm.val().length){$confirm.change()}});$input.on("change",function(){var val=$(this).val();if(val.length>0){$input.attr("required","required");$confirm.attr("required","required")}else if(!$(this).closest(".InputfieldStateRequired").length){$input.removeAttr("required");$confirm.removeAttr("required")}});$confirm.on("keyup change",function(){var val1=$input.val();var val2=$(this).val();var $on=null;var $p=$input.closest("p").removeClass("pass-matches");if(val2.length==0){$on=$confirms.children(".confirm-pending")}else if(val1==val2){$on=$confirms.children(".confirm-yes");$p.addClass("pass-matches")}else if(val1.indexOf(val2)===0){$on=$confirms.children(".confirm-qty");$on.children("span").html(val2.length+"/"+val1.length)}else{$on=$confirms.children(".confirm-no")}if($on)$on.addClass("on").siblings(".on").removeClass("on")})});var $ffinputs=$(".InputfieldPassword").find("input[autocomplete='new-password']");if($ffinputs.length){setTimeout(function(){$ffinputs.each(function(){if($(this).val().length<1||$(this).attr("value").length>0)return;$(this).val("").trigger("keyup").change().closest(".Inputfield").removeClass("InputfieldStateChanged")})},1e3)}});