gPanel/server/document_root/assets/js/panelHandlers/users/new.js

94 lines
2.7 KiB
JavaScript

var userModal = jQuery('.user-management-modal');
var usernameInput = jQuery('#addUserUsername');
var passwordInput = jQuery('#addUserPassword');
var passwordInputRetype = jQuery('#addUserPasswordRetype');
jQuery('._js_add-user-form').on('submit', function(e){
e.preventDefault();
if((usernameInput && usernameInput.val()) && (passwordInput && passwordInput.val()) && (passwordInputRetype && passwordInputRetype.val())) {
if(passwordInput.val() == passwordInputRetype.val()) {
if (passwordInput.val().length >= 8) {
var requestData = {};
requestData["user"] = usernameInput.val();
requestData["pass"] = passwordInput.val();
var xhr = new XMLHttpRequest();
xhr.open(jQuery(this).attr('method'), jQuery(this).attr('action'), true);
xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
xhr.send(JSON.stringify(requestData));
xhr.onloadend = function() {
if(xhr.status == 204) {
listCurrentUsers();
$('input[type=password]').each(function() {
$(this).val('');
});
}
else {
if(xhr.response != undefined && xhr.response.length != 0) {
alert('Error: ' + xhr.response);
}
else {
alert('An error has occurred, refresh and try again. If problem persists please contact your administrator.');
}
}
}
}
else {
alert('Password must be at least 8 characters');
}
}
else {
alert('Password fields do not match.');
}
}
else {
alert('All fields must contain values.');
}
});
jQuery('._js_add-user-generate-password').on('click', function(e){
e.preventDefault();
var genpass = generatePassword();
toggleShowPassword(true);
passwordInput.prop('value', genpass);
passwordInputRetype.prop('value', genpass);
});
function generatePassword() {
var gen = "";
var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()_+-[]:;<>?";
for (var i = 0; i < 32; i++) {
gen += chars.charAt(Math.floor(Math.random() * chars.length));
}
return gen
}
jQuery('._js_user-management-show-password').on('change', function(e){
e.preventDefault();
if(this.checked) {
toggleShowPassword(true);
}
else {
toggleShowPassword(false);
}
});
function toggleShowPassword(show) {
if(show) {
jQuery('._js_user-management-show-password').prop('checked', true);
passwordInput.attr('type', 'text');
passwordInputRetype.attr('type', 'text');
}
else {
jQuery('._js_user-management-show-password').prop('checked', false);
passwordInput.attr('type', 'password');
passwordInputRetype.attr('type', 'password');
}
}