const utils = require('../utils');
const api = require('../utils/api');
const ui = require('../ui/common');
const logger_commands = require('../utils/logger');
const $ = require('jquery');
const pretty_bytes = require('pretty-bytes');
ui.init_new_password();
$("#settings").on("click", function() {
$("#logs_size").text(pretty_bytes(logger_commands.logs_memory_usage()));
});
$("#save_display_name").on("click", function() {
utils.validate.keys({
display_name: $("#display_name").val().trim()
}, [
["display_name", "Username cannot be empty"]
]).then(function(data) {
return api.post("/account/update/display-name", data);
}).then(function(data) {
ui.show_banner(data);
}).catch(api.handle_error_message);
});
$("#save_new_password").on("click", function() {
utils.validate.keys({
current_password: $("#current_password").val(),
new_password: $("#new_password").val()
}, [
["current_password", "Current password required"],
["new_password", "Passwords don't match", password => password === $("#confirm_password").val()],
["new_password", "You must appease the password strength meter", password => utils.validate.password(password).score]
]).then(function(data) {
return api.post("/account/update/password", data);
}).then(function(data) {
ui.show_banner(data);
}).catch(api.handle_error_message);
});
$("#export-button").on("click", async function() {
await api.get('/export');
});
toggle_logger_settings_state(
logger_commands.logs_enabled(),
false
);
$("#toggle_logs").on("click", function() {
toggle_logger_settings_state(
logger_commands.toggle_logs(), true
);
});
function toggle_logger_settings_state(enable, show_banner) {
if (enable) {
$("#logs_size").text(pretty_bytes(logger_commands.logs_memory_usage()));
$("#logs_enabled_message").show();
$("#logs_disabled_message").hide();
$("#toggle_logs").text("Disable Logs");
$("#export_logs").removeClass("disabled-button").on("click", function() {
logger_commands.export_logs().then(function() {
ui.show_banner({
message: "Logs Exported"
});
$("#logs_size").text(pretty_bytes(logger_commands.logs_memory_usage()));
}).catch(api.handle_error_message);
});
if (show_banner) {
ui.show_banner({
message: "Logs Enabled"
});
}
} else {
$("#logs_enabled_message").hide();
$("#logs_disabled_message").show();
$("#toggle_logs").text("Enable Logs");
$("#export_logs").addClass("disabled-button").off("click");
if (show_banner) {
ui.show_banner({
message: "Logs Disabled"
});
}
}
}