require('../../scss/banner.scss');
require('../../scss/password.scss');
const $ = require('jquery');
const utils = require('../utils');
const default_password_message = "No bullshit requirements as long as the password strength bar moves at all";
module.exports = {
show_banner: function({
message,
color,
persistent
}) {
color = color || "green";
logger.log("show", color, "banner:", message);
let $banner = $(`<div class="banner"></div>`).text(message).addClass(color);
if (!persistent) {
setTimeout(function() {
$banner.slideUp(250, function() {
$banner.remove();
});
}, 3500);
}
$(".banner-container").prepend($banner);
$banner.css("height", "unset");
let target_height = $banner.outerHeight() - 20; // account for the margins
$banner.css("height", 0);
$banner.animate({
height: target_height,
opacity: 0.85
}, 250);
},
init_new_password: function() {
$(".password-strength-message").text(default_password_message);
$("#new_password").on("input", function(event) {
let password = event.target.value;
if (password) {
const result = utils.validate.password(password.slice(0, Math.min(password.length, 100)));
logger.log(result);
$(".password-strength-meter").val(result.score);
let message = `Crackable in ${result.crack_times_display.online_throttling_100_per_hour}`;
if (!result.score) {
message += `. ${result.feedback.warning || result.feedback.suggestions[0] || "Do better"}`;
}
$(".password-strength-message").text(message);
} else {
$(".password-strength-meter").val(0);
$(".password-strength-message").text(default_password_message);
}
});
}
};