*/
Roo.bootstrap.form.SecurePass = function (config) {
- // these go here, so the translation tool can replace them..
- // this.errors = {
- // PwdEmpty: "Please type a password, and then retype it to confirm.",
- // PwdShort: "Your password must be at least 6 characters long. Please type a different password.",
- // PwdLong: "Your password can't contain more than 16 characters. Please type a different password.",
- // PwdBadChar: "The password contains characters that aren't allowed. Please type a different password.",
- // IDInPwd: "Your password can't include the part of your ID. Please type a different password.",
- // FNInPwd: "Your password can't contain your first name. Please type a different password.",
- // LNInPwd: "Your password can't contain your last name. Please type a different password.",
- // TooWeak: "Your password is Too Weak."
- // },
- // this.meterLabel = "Password strength:";
- // this.pwdStrengths = ["Too Weak", "Weak", "Medium", "Strong"];
- // this.meterClass = [
- // "roo-password-meter-tooweak",
- // "roo-password-meter-weak",
- // "roo-password-meter-medium",
- // "roo-password-meter-strong",
- // "roo-password-meter-grey"
- // ];
-
- // this.errors = {};
Roo.bootstrap.form.SecurePass.superclass.constructor.call(this, config);
}
Roo.extend(Roo.bootstrap.form.SecurePass, Roo.bootstrap.form.Input, {
- /**
- * @cfg {String/Object} errors A Error spec, or true for a default spec (defaults to
- * {
- * PwdEmpty: "Please type a password, and then retype it to confirm.",
- * PwdShort: "Your password must be at least 6 characters long. Please type a different password.",
- * PwdLong: "Your password can't contain more than 16 characters. Please type a different password.",
- * PwdBadChar: "The password contains characters that aren't allowed. Please type a different password.",
- * IDInPwd: "Your password can't include the part of your ID. Please type a different password.",
- * FNInPwd: "Your password can't contain your first name. Please type a different password.",
- * LNInPwd: "Your password can't contain your last name. Please type a different password."
- * })
- */
// private
- meterWidth: 300,
- errorMsg :'',
- // errors: false,
- imageRoot: '/',
- /**
- * @cfg {String/Object} Label for the strength meter (defaults to
- * 'Password strength:')
- */
- // private
- // meterLabel: '',
- /**
- * @cfg {String/Object} pwdStrengths A pwdStrengths spec, or true for a default spec (defaults to
- * ['Weak', 'Medium', 'Strong'])
- */
- // private
- // pwdStrengths: false,
+ meterWidth: 300,
+ imageRoot: '/',
// private
strength: 0,
// private
return true;
}
- // this.markInvalid(Roo.bootstrap.form.SecurePass.errors.PwdEmpty);
this.invalidText = Roo.bootstrap.form.SecurePass.errors.PwdEmpty;
return false;
}
}
if (!value.match(/[\x21-\x7e]+/)) {
- this.markInvalid(Roo.bootstrap.form.SecurePass.errors.PwdBadChar);
- this.errorMsg = Roo.bootstrap.form.SecurePass.errors.PwdBadChar;
+ this.invalidText = Roo.bootstrap.form.SecurePass.errors.PwdBadChar;
return false;
}
if (value.length < 6) {
- // this.markInvalid(Roo.bootstrap.form.SecurePass.errors.PwdShort);
this.invalidText = Roo.bootstrap.form.SecurePass.errors.PwdShort;
return false;
}
if (value.length > 16) {
- this.markInvalid(Roo.bootstrap.form.SecurePass.errors.PwdLong);
- this.errorMsg = Roo.bootstrap.form.SecurePass.errors.PwdLong;
+ this.invalidText = Roo.bootstrap.form.SecurePass.errors.PwdLong;
return false;
}
var strength;
if (strength < 2) {
- //this.markInvalid(Roo.bootstrap.form.SecurePass.errors.TooWeak);
- this.errorMsg = Roo.bootstrap.form.SecurePass.errors.TooWeak;
- //return false;
+ this.invalidText = Roo.bootstrap.form.SecurePass.errors.TooWeak;
}
var pt = this.trigger.child('/div').child('>*[class=roo-password-meter-text]').dom;
pt.innerHTML = Roo.bootstrap.form.SecurePass.meterLabel + ' ' + Roo.bootstrap.form.SecurePass.pwdStrengths[strength];
-
- this.errorMsg = '';
+
return true;
},
// private
]};return A;},initEvents:function(){this.parent().register(this);this.el.on('click',this.onClick,this);},onClick:function(e){if(this.parent().fireEvent('click',this.parent(),this,e)!==false){this.setChecked(true);}},setChecked:function(A,B){this.parent().setValue(this.value,B);
},setBoxLabel:function(v){this.boxLabel=v;if(this.rendered){this.el.select('label.box-label',true).first().dom.innerHTML=(v===null||v===undefined?'':v);}}});
// Roo/bootstrap/form/SecurePass.js
-Roo.bootstrap.form.SecurePass=function(A){Roo.bootstrap.form.SecurePass.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.form.SecurePass,Roo.bootstrap.form.Input,{meterWidth:300,errorMsg:'',imageRoot:'/',strength:0,_lastPwd:null,kCapitalLetter:0,kSmallLetter:1,kDigit:2,kPunctuation:3,insecure:false,initEvents:function(){Roo.bootstrap.form.SecurePass.superclass.initEvents.call(this);
+Roo.bootstrap.form.SecurePass=function(A){Roo.bootstrap.form.SecurePass.superclass.constructor.call(this,A);};Roo.extend(Roo.bootstrap.form.SecurePass,Roo.bootstrap.form.Input,{meterWidth:300,imageRoot:'/',strength:0,_lastPwd:null,kCapitalLetter:0,kSmallLetter:1,kDigit:2,kPunctuation:3,insecure:false,initEvents:function(){Roo.bootstrap.form.SecurePass.superclass.initEvents.call(this);
if(this.el.is('input[type=password]')&&Roo.isSafari){this.el.on('keydown',this.SafariOnKeyDown,this);}this.el.on('keyup',this.checkStrength,this,{buffer:50});},onRender:function(ct,A){Roo.bootstrap.form.SecurePass.superclass.onRender.call(this,ct,A);this.wrap=this.el.wrap({cls:'x-form-field-wrap'}
);this.trigger=this.wrap.createChild({tag:'div',cls:'StrengthMeter '+this.triggerClass});this.trigger.createChild({cn:[{tag:'div',cls:'roo-password-meter-grey col-xs-12',style:{}},{cls:'roo-password-meter-text'}]});if(this.hideTrigger){this.trigger.setDisplayed(false);
}this.setSize(this.width||'',this.height||'');},onDestroy:function(){if(this.trigger){this.trigger.removeAllListeners();this.trigger.remove();}if(this.wrap){this.wrap.remove();}Roo.bootstrap.form.TriggerField.superclass.onDestroy.call(this);},checkStrength:function(){var A=this.inputEl().getValue();
pm.addClass(Roo.bootstrap.form.SecurePass.meterClass[B]);var pt=this.trigger.child('/div').child('>*[class=roo-password-meter-text]').dom;pt.innerHTML=Roo.bootstrap.form.SecurePass.meterLabel+' '+Roo.bootstrap.form.SecurePass.pwdStrengths[B];this._lastPwd=A;
},reset:function(){Roo.bootstrap.form.SecurePass.superclass.reset.call(this);this._lastPwd='';var pm=this.trigger.child('div/div');pm.removeClass(Roo.bootstrap.form.SecurePass.meterClass);pm.addClass('roo-password-meter-grey');var pt=this.trigger.child('/div').child('>*[class=roo-password-meter-text]').dom;
pt.innerHTML='';this.inputEl().dom.type='password';},validateValue:function(A){if(!Roo.bootstrap.form.SecurePass.superclass.validateValue.call(this,A)){return false;}if(A.length==0){if(this.allowBlank){this.clearInvalid();return true;}this.invalidText=Roo.bootstrap.form.SecurePass.errors.PwdEmpty;
-return false;}if(this.insecure){return true;}if(!A.match(/[\x21-\x7e]+/)){this.markInvalid(Roo.bootstrap.form.SecurePass.errors.PwdBadChar);this.errorMsg=Roo.bootstrap.form.SecurePass.errors.PwdBadChar;return false;}if(A.length<6){this.invalidText=Roo.bootstrap.form.SecurePass.errors.PwdShort;
-return false;}if(A.length>16){this.markInvalid(Roo.bootstrap.form.SecurePass.errors.PwdLong);this.errorMsg=Roo.bootstrap.form.SecurePass.errors.PwdLong;return false;}var B;if(this.ClientSideStrongPassword(A)){B=3;}else if(this.ClientSideMediumPassword(A)){B=2;
-}else if(this.ClientSideWeakPassword(A)){B=1;}else{B=0;}if(B<2){this.errorMsg=Roo.bootstrap.form.SecurePass.errors.TooWeak;}console.log('strength2: '+B);var pm=this.trigger.child('div/div');pm.removeClass(Roo.bootstrap.form.SecurePass.meterClass);pm.addClass(Roo.bootstrap.form.SecurePass.meterClass[B]);
-var pt=this.trigger.child('/div').child('>*[class=roo-password-meter-text]').dom;pt.innerHTML=Roo.bootstrap.form.SecurePass.meterLabel+' '+Roo.bootstrap.form.SecurePass.pwdStrengths[B];this.errorMsg='';return true;},CharacterSetChecks:function(A){this.type=A;
-this.fResult=false;},isctype:function(A,B){switch(B){case this.kCapitalLetter:if(A>='A'&&A<='Z'){return true;}break;case this.kSmallLetter:if(A>='a'&&A<='z'){return true;}break;case this.kDigit:if(A>='0'&&A<='9'){return true;}break;case this.kPunctuation:if('!@#$%^&*()_+-=\'";:[{]}|.>,</?`~'.indexOf(A)>=0){return true;
-}break;default:return false;}},IsLongEnough:function(A,B){return !(A==null||isNaN(B)||A.length<B);},SpansEnoughCharacterSets:function(A,nb){if(!this.IsLongEnough(A,nb)){return false;}var B=new Array(new this.CharacterSetChecks(this.kCapitalLetter),new this.CharacterSetChecks(this.kSmallLetter),new this.CharacterSetChecks(this.kDigit),new this.CharacterSetChecks(this.kPunctuation));
-for(var C=0;C<A.length;++C){for(var D=0;D<B.length;++D){if(!B[D].fResult&&this.isctype(A.charAt(C),B[D].type)){B[D].fResult=true;break;}}}var E=0;for(var D=0;D<B.length;++D){if(B[D].fResult){++E;}}if(E<nb){return false;}return true;},ClientSideStrongPassword:function(A){return this.IsLongEnough(A,8)&&this.SpansEnoughCharacterSets(A,3);
-},ClientSideMediumPassword:function(A){return this.IsLongEnough(A,7)&&this.SpansEnoughCharacterSets(A,2);},ClientSideWeakPassword:function(A){return this.IsLongEnough(A,6)||!this.IsLongEnough(A,0);}});Roo.bootstrap.form.SecurePass.errors={PwdEmpty:"Please type a password, and then retype it to confirm.",PwdShort:"Your password must be at least 6 characters long. Please type a different password.",PwdLong:"Your password can't contain more than 16 characters. Please type a different password.",PwdBadChar:"The password contains characters that aren't allowed. Please type a different password.",IDInPwd:"Your password can't include the part of your ID. Please type a different password.",FNInPwd:"Your password can't contain your first name. Please type a different password.",LNInPwd:"Your password can't contain your last name. Please type a different password.",TooWeak:"Your password is Too Weak."}
+return false;}if(this.insecure){return true;}if(!A.match(/[\x21-\x7e]+/)){this.invalidText=Roo.bootstrap.form.SecurePass.errors.PwdBadChar;return false;}if(A.length<6){this.invalidText=Roo.bootstrap.form.SecurePass.errors.PwdShort;return false;}if(A.length>16){this.invalidText=Roo.bootstrap.form.SecurePass.errors.PwdLong;
+return false;}var B;if(this.ClientSideStrongPassword(A)){B=3;}else if(this.ClientSideMediumPassword(A)){B=2;}else if(this.ClientSideWeakPassword(A)){B=1;}else{B=0;}if(B<2){this.invalidText=Roo.bootstrap.form.SecurePass.errors.TooWeak;}console.log('strength2: '+B);
+var pm=this.trigger.child('div/div');pm.removeClass(Roo.bootstrap.form.SecurePass.meterClass);pm.addClass(Roo.bootstrap.form.SecurePass.meterClass[B]);var pt=this.trigger.child('/div').child('>*[class=roo-password-meter-text]').dom;pt.innerHTML=Roo.bootstrap.form.SecurePass.meterLabel+' '+Roo.bootstrap.form.SecurePass.pwdStrengths[B];
+return true;},CharacterSetChecks:function(A){this.type=A;this.fResult=false;},isctype:function(A,B){switch(B){case this.kCapitalLetter:if(A>='A'&&A<='Z'){return true;}break;case this.kSmallLetter:if(A>='a'&&A<='z'){return true;}break;case this.kDigit:if(A>='0'&&A<='9'){return true;
+}break;case this.kPunctuation:if('!@#$%^&*()_+-=\'";:[{]}|.>,</?`~'.indexOf(A)>=0){return true;}break;default:return false;}},IsLongEnough:function(A,B){return !(A==null||isNaN(B)||A.length<B);},SpansEnoughCharacterSets:function(A,nb){if(!this.IsLongEnough(A,nb)){return false;
+}var B=new Array(new this.CharacterSetChecks(this.kCapitalLetter),new this.CharacterSetChecks(this.kSmallLetter),new this.CharacterSetChecks(this.kDigit),new this.CharacterSetChecks(this.kPunctuation));for(var C=0;C<A.length;++C){for(var D=0;D<B.length;++D){if(!B[D].fResult&&this.isctype(A.charAt(C),B[D].type)){B[D].fResult=true;
+break;}}}var E=0;for(var D=0;D<B.length;++D){if(B[D].fResult){++E;}}if(E<nb){return false;}return true;},ClientSideStrongPassword:function(A){return this.IsLongEnough(A,8)&&this.SpansEnoughCharacterSets(A,3);},ClientSideMediumPassword:function(A){return this.IsLongEnough(A,7)&&this.SpansEnoughCharacterSets(A,2);
+},ClientSideWeakPassword:function(A){return this.IsLongEnough(A,6)||!this.IsLongEnough(A,0);}});Roo.bootstrap.form.SecurePass.errors={PwdEmpty:"Please type a password, and then retype it to confirm.",PwdShort:"Your password must be at least 6 characters long. Please type a different password.",PwdLong:"Your password can't contain more than 16 characters. Please type a different password.",PwdBadChar:"The password contains characters that aren't allowed. Please type a different password.",IDInPwd:"Your password can't include the part of your ID. Please type a different password.",FNInPwd:"Your password can't contain your first name. Please type a different password.",LNInPwd:"Your password can't contain your last name. Please type a different password.",TooWeak:"Your password is Too Weak."}
;Roo.bootstrap.form.SecurePass.meterLabel="Password strength:";Roo.bootstrap.form.SecurePass.pwdStrengths=["Too Weak","Weak","Medium","Strong"];Roo.bootstrap.form.SecurePass.meterClass=["roo-password-meter-tooweak","roo-password-meter-weak","roo-password-meter-medium","roo-password-meter-strong","roo-password-meter-grey"];
// Roo/bootstrap/form/Password.js