127.0.0.1:8000 watch-together / master src / js / ui / common.js
master

Tree @master (Download .tar.gz)

common.js @masterraw · history · blame

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);
            }
        });
    }
};