Files
ventas_php/javascript/login.js
nickpons666 ccfa01fa0e feat(atributos): Mejora la funcionalidad de la página de atributos
- Deshabilita la paginación para mostrar todos los atributos por defecto.
- Corrige un error de renderizado en 'atributos-valores.tpl' añadiendo etiquetas de cierre faltantes.
- Cambia el orden de los atributos a 'atributoId' en 'atributo.class.php'.
- Corrige un bug en 'atributoValor.class.php' descomentando una condición.
- Asegura que las acciones AJAX (añadir, editar, eliminar) refresquen la lista correctamente sin paginación.
2026-01-08 01:06:11 -06:00

116 lines
3.7 KiB
JavaScript
Executable File

// JavaScript de login para el sistema
// Esperar a que las librerías estén cargadas
document.observe('dom:loaded', function() {
var LoginCheck = {
check: function() {
var form = $('loginForm');
var email = $F('email');
var password = $F('password');
// Validación básica
if (!email || !password) {
$('errorLoginDiv').innerHTML = 'Por favor ingrese email y contraseña';
return false;
}
// Deshabilitar botón durante proceso
var submitButton = form.querySelector('input[type="submit"]');
if (submitButton) {
submitButton.disabled = true;
submitButton.value = 'Procesando...';
}
// Enviar por AJAX
new Ajax.Request(WEB_ROOT + '/ajax/login.php', {
method: 'post',
parameters: {
email: email,
password: password
},
onSuccess: function(transport) {
var response = transport.responseText;
// Restaurar botón
if (submitButton) {
submitButton.disabled = false;
submitButton.value = 'Iniciar Sesión';
}
if (response.indexOf('ok[#]') !== -1) {
// Login exitoso
$('errorLoginDiv').innerHTML = '';
window.location.href = WEB_ROOT + '/homepage';
} else {
// Login fallido
$('errorLoginDiv').innerHTML = 'Email o contraseña incorrectos';
}
},
onFailure: function() {
// Error de conexión
if (submitButton) {
submitButton.disabled = false;
submitButton.value = 'Iniciar Sesión';
}
$('errorLoginDiv').innerHTML = 'Error de conexión. Intente nuevamente.';
}
});
}
};
// Función para validación en tiempo real
var LoginValidation = {
validateEmail: function(email) {
var regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
return regex.test(email);
},
validatePassword: function(password) {
return password.length >= 4; // Mínimo 4 caracteres
}
};
// Inicializar formulario cuando el DOM esté listo
document.observe('dom:loaded', function() {
var form = $('loginForm');
if (form) {
// Validar email al cambiar
var emailField = $('email');
if (emailField) {
emailField.observe('blur', function() {
var email = this.value;
var errorDiv = $('errorLoginDiv');
if (email && !LoginValidation.validateEmail(email)) {
errorDiv.innerHTML = 'Por favor ingrese un email válido';
} else {
errorDiv.innerHTML = '';
}
});
}
// Validar contraseña al cambiar
var passwordField = $('password');
if (passwordField) {
passwordField.observe('blur', function() {
var password = this.value;
var errorDiv = $('errorLoginDiv');
if (password && !LoginValidation.validatePassword(password)) {
errorDiv.innerHTML = 'La contraseña debe tener al menos 4 caracteres';
} else {
errorDiv.innerHTML = '';
}
});
}
// Manejar envío del formulario
form.observe('submit', function(e) {
e.stop();
LoginCheck.check();
});
}
});
});