diff options
-rw-r--r-- | README.md | 3 | ||||
-rw-r--r-- | jquery.strengthify.js | 5 | ||||
-rw-r--r-- | jquery.strengthify.min.js | 2 |
3 files changed, 4 insertions, 6 deletions
@@ -67,8 +67,7 @@ Default: "drawTitles": false, "drawMessage": false, "drawBars": true, - "$addAfter": null, - "onResult": null + "$addAfter": null } ``` Overwrite example: diff --git a/jquery.strengthify.js b/jquery.strengthify.js index 9362f74..41d4040 100644 --- a/jquery.strengthify.js +++ b/jquery.strengthify.js @@ -52,8 +52,7 @@ drawTitles: false, drawMessage: false, drawBars: true, - $addAfter: null, - onResult: null + $addAfter: null }; return this.each(function() { @@ -91,7 +90,7 @@ '"progid:DXImageTransform.Microsoft.Alpha(Opacity=' + opacity * 100 + ')"' ); - if (options.onResult !== undefined && null !== options.onResult) { + if (options.onResult) { options.onResult(result); } diff --git a/jquery.strengthify.min.js b/jquery.strengthify.min.js index 1acfb55..8cf2241 100644 --- a/jquery.strengthify.min.js +++ b/jquery.strengthify.min.js @@ -1 +1 @@ -!function($){$.fn.strengthify=function(paramOptions){"use strict";var defaults={zxcvbn:"zxcvbn/zxcvbn.js",titles:["Weakest","Weak","So-so","Good","Perfect"],tilesOptions:{tooltip:!0,element:!1},drawTitles:!1,drawMessage:!1,drawBars:!0,$addAfter:null,onResult:null};return this.each(function(){var options=$.extend(defaults,paramOptions);function getWrapperFor(t){return $('div[data-strengthifyFor="'+t+'"]')}function drawStrengthify(){var t=$(this).val(),e=$(this).attr("id"),s=""===t?0:1,a=zxcvbn(t),i="",o="",r="",n=getWrapperFor(e),d=n.find(".strengthify-container"),l=n.find("[data-strengthifyMessage]");switch(n.children().css("opacity",s).css("-ms-filter",'"progid:DXImageTransform.Microsoft.Alpha(Opacity='+100*s+')"'),void 0!==options.onResult&&null!==options.onResult&&options.onResult(a),a.score){case 0:case 1:i="password-bad",o="danger",r=a.feedback?a.feedback.suggestions.join("<br/>"):"";break;case 2:o="warning",r=a.feedback?a.feedback.suggestions.join("<br/>"):"",i="password-medium";break;case 3:i="password-good",o="info",r="Getting better.";break;case 4:i="password-good",o="success",r="Looks good."}l&&(l.removeAttr("class"),l.addClass("bg-"+o),""===t&&(r=""),l.html(r)),d&&(d.attr("class",i+" strengthify-container").css("width",25*(0===a.score?1:a.score)+"%"),""===t&&d.css("width",0)),options.drawTitles&&(options.tilesOptions.tooltip&&(n.attr("title",options.titles[a.score]).tooltip({placement:"bottom",trigger:"manual"}).tooltip("fixTitle").tooltip("show"),0===s&&n.tooltip("hide")),options.tilesOptions.element&&n.find(".strengthify-tiles").text(options.titles[a.score]))}function init(){var $elem=$(this),elemId=$elem.attr("id"),drawSelf=drawStrengthify.bind(this),$addAfter=options.$addAfter;$addAfter||($addAfter=$elem),$addAfter.after('<div class="strengthify-wrapper" data-strengthifyFor="'+$elem.attr("id")+'"></div>'),options.drawBars&&getWrapperFor(elemId).append('<div class="strengthify-bg" />').append('<div class="strengthify-container" />').append('<div class="strengthify-separator" style="left: 25%" />').append('<div class="strengthify-separator" style="left: 50%" />').append('<div class="strengthify-separator" style="left: 75%" />'),options.drawMessage&&getWrapperFor(elemId).append("<div data-strengthifyMessage></div>"),options.drawTitles&&options.tilesOptions&&getWrapperFor(elemId).append('<div class="strengthify-tiles"></div>'),$elem.parent().on("scroll",drawSelf),$.ajax({cache:!0,url:options.zxcvbn}).done(function(content){eval(content),$elem.bind("keyup input change",drawSelf)})}options.drawTitles||options.drawMessage||options.drawBars||console.warn("expect at least one of 'drawTitles', 'drawMessage', or 'drawBars' to be true"),init.call(this)})}}(jQuery);
\ No newline at end of file +!function($){$.fn.strengthify=function(paramOptions){"use strict";var defaults={zxcvbn:"zxcvbn/zxcvbn.js",titles:["Weakest","Weak","So-so","Good","Perfect"],tilesOptions:{tooltip:!0,element:!1},drawTitles:!1,drawMessage:!1,drawBars:!0,$addAfter:null};return this.each(function(){var options=$.extend(defaults,paramOptions);function getWrapperFor(t){return $('div[data-strengthifyFor="'+t+'"]')}function drawStrengthify(){var t=$(this).val(),e=$(this).attr("id"),s=""===t?0:1,a=zxcvbn(t),r="",i="",o="",n=getWrapperFor(e),d=n.find(".strengthify-container"),l=n.find("[data-strengthifyMessage]");switch(n.children().css("opacity",s).css("-ms-filter",'"progid:DXImageTransform.Microsoft.Alpha(Opacity='+100*s+')"'),options.onResult&&options.onResult(a),a.score){case 0:case 1:r="password-bad",i="danger",o=a.feedback?a.feedback.suggestions.join("<br/>"):"";break;case 2:i="warning",o=a.feedback?a.feedback.suggestions.join("<br/>"):"",r="password-medium";break;case 3:r="password-good",i="info",o="Getting better.";break;case 4:r="password-good",i="success",o="Looks good."}l&&(l.removeAttr("class"),l.addClass("bg-"+i),""===t&&(o=""),l.html(o)),d&&(d.attr("class",r+" strengthify-container").css("width",25*(0===a.score?1:a.score)+"%"),""===t&&d.css("width",0)),options.drawTitles&&(options.tilesOptions.tooltip&&(n.attr("title",options.titles[a.score]).tooltip({placement:"bottom",trigger:"manual"}).tooltip("fixTitle").tooltip("show"),0===s&&n.tooltip("hide")),options.tilesOptions.element&&n.find(".strengthify-tiles").text(options.titles[a.score]))}function init(){var $elem=$(this),elemId=$elem.attr("id"),drawSelf=drawStrengthify.bind(this),$addAfter=options.$addAfter;$addAfter||($addAfter=$elem),$addAfter.after('<div class="strengthify-wrapper" data-strengthifyFor="'+$elem.attr("id")+'"></div>'),options.drawBars&&getWrapperFor(elemId).append('<div class="strengthify-bg" />').append('<div class="strengthify-container" />').append('<div class="strengthify-separator" style="left: 25%" />').append('<div class="strengthify-separator" style="left: 50%" />').append('<div class="strengthify-separator" style="left: 75%" />'),options.drawMessage&&getWrapperFor(elemId).append("<div data-strengthifyMessage></div>"),options.drawTitles&&options.tilesOptions&&getWrapperFor(elemId).append('<div class="strengthify-tiles"></div>'),$elem.parent().on("scroll",drawSelf),$.ajax({cache:!0,url:options.zxcvbn}).done(function(content){eval(content),$elem.bind("keyup input change",drawSelf)})}options.drawTitles||options.drawMessage||options.drawBars||console.warn("expect at least one of 'drawTitles', 'drawMessage', or 'drawBars' to be true"),init.call(this)})}}(jQuery);
\ No newline at end of file |