options.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. /*jslint browser: true, unparam: true */
  2. /*global jQuery, i18n */
  3. /*
  4. * jQuery Password Strength plugin for Twitter Bootstrap
  5. *
  6. * Copyright (c) 2008-2013 Tane Piper
  7. * Copyright (c) 2013 Alejandro Blanco
  8. * Dual licensed under the MIT and GPL licenses.
  9. */
  10. var defaultOptions = {};
  11. defaultOptions.common = {};
  12. defaultOptions.common.minChar = 6;
  13. defaultOptions.common.usernameField = "#username";
  14. defaultOptions.common.userInputs = [
  15. // Selectors for input fields with user input
  16. ];
  17. defaultOptions.common.onLoad = undefined;
  18. defaultOptions.common.onKeyUp = undefined;
  19. defaultOptions.common.onScore = undefined;
  20. defaultOptions.common.zxcvbn = false;
  21. defaultOptions.common.zxcvbnTerms = [
  22. // List of disrecommended words
  23. ];
  24. defaultOptions.common.events = ["keyup", "change", "paste"];
  25. defaultOptions.common.debug = false;
  26. defaultOptions.rules = {};
  27. defaultOptions.rules.extra = {};
  28. defaultOptions.rules.scores = {
  29. wordNotEmail: -100,
  30. wordLength: -50,
  31. wordSimilarToUsername: -100,
  32. wordSequences: -20,
  33. wordTwoCharacterClasses: 2,
  34. wordRepetitions: -25,
  35. wordLowercase: 1,
  36. wordUppercase: 3,
  37. wordOneNumber: 3,
  38. wordThreeNumbers: 5,
  39. wordOneSpecialChar: 3,
  40. wordTwoSpecialChar: 5,
  41. wordUpperLowerCombo: 2,
  42. wordLetterNumberCombo: 2,
  43. wordLetterNumberCharCombo: 2
  44. };
  45. defaultOptions.rules.activated = {
  46. wordNotEmail: true,
  47. wordLength: true,
  48. wordSimilarToUsername: true,
  49. wordSequences: true,
  50. wordTwoCharacterClasses: false,
  51. wordRepetitions: false,
  52. wordLowercase: true,
  53. wordUppercase: true,
  54. wordOneNumber: true,
  55. wordThreeNumbers: true,
  56. wordOneSpecialChar: true,
  57. wordTwoSpecialChar: true,
  58. wordUpperLowerCombo: true,
  59. wordLetterNumberCombo: true,
  60. wordLetterNumberCharCombo: true
  61. };
  62. defaultOptions.rules.raisePower = 1.4;
  63. defaultOptions.ui = {};
  64. defaultOptions.ui.bootstrap2 = false;
  65. defaultOptions.ui.bootstrap4 = false;
  66. defaultOptions.ui.colorClasses = [
  67. "danger", "danger", "danger", "warning", "warning", "success"
  68. ];
  69. defaultOptions.ui.showProgressBar = true;
  70. defaultOptions.ui.progressBarEmptyPercentage = 1;
  71. defaultOptions.ui.progressBarMinPercentage = 1;
  72. defaultOptions.ui.progressBarExtraCssClasses = '';
  73. defaultOptions.ui.showPopover = false;
  74. defaultOptions.ui.popoverPlacement = "bottom";
  75. defaultOptions.ui.showStatus = false;
  76. defaultOptions.ui.spanError = function (options, key) {
  77. "use strict";
  78. var text = options.i18n.t(key);
  79. if (!text) { return ''; }
  80. return '<span style="color: #d52929">' + text + '</span>';
  81. };
  82. defaultOptions.ui.popoverError = function (options) {
  83. "use strict";
  84. var errors = options.instances.errors,
  85. errorsTitle = options.i18n.t("errorList"),
  86. message = "<div>" + errorsTitle + "<ul class='error-list' style='margin-bottom: 0;'>";
  87. jQuery.each(errors, function (idx, err) {
  88. message += "<li>" + err + "</li>";
  89. });
  90. message += "</ul></div>";
  91. return message;
  92. };
  93. defaultOptions.ui.showVerdicts = true;
  94. defaultOptions.ui.showVerdictsInsideProgressBar = false;
  95. defaultOptions.ui.useVerdictCssClass = false;
  96. defaultOptions.ui.showErrors = false;
  97. defaultOptions.ui.showScore = false;
  98. defaultOptions.ui.container = undefined;
  99. defaultOptions.ui.viewports = {
  100. progress: undefined,
  101. verdict: undefined,
  102. errors: undefined,
  103. score: undefined
  104. };
  105. defaultOptions.ui.scores = [0, 14, 26, 38, 50];
  106. defaultOptions.i18n = {};
  107. defaultOptions.i18n.t = i18n.t;