JAVASCRIPT
/* let direccion="[Link] */
let direccion="[Link]
let estado = 0;
[Link]("botonIniciarSesion").addEventListener("click", event => {
[Link](); //evito el refresco al submitir para poder indicar el mensaje de error
miFunction(); /* miFunction(event); */ /* Le paso el event a la funcion para hacer algo?????? */
verificoLogin();
});
function verificoLogin() {
if ([Link]("usuarioEnLinea") != null && estado == 1) { //si existe una variable de session llamada
'usuarioEnLinea' el usuario se logeo con exito
url_redirect('../[Link]'); //entonces lo redirijo a la pagina principal
};
}
function miFunction() {
var usuario = [Link]('usuario').value; //obtengo usuario del input
var contrasena = [Link]('contrasena').value; //obtengo la contraseña del input
var salir = false;
let esValido = validaEmail(usuario); //valido que el mail cumpla con ____@____.___
let esValidPsw = validaContrasena(contrasena);
manejarErrores("usuario", "errUsr", esValido); //se llama a la funcion manejar errores, donde se pasa el id , id del
mensaje de error y la variable esValido
manejarErrores("contrasena", "errPsw", esValidPsw);
if (!esValido || !esValidPsw) {
salir = true;
return; //si existio algun error no continuo y espero a la proxima vez
}
/* buscamos del API si existen los datos ingresados */
const resultado = leoDatosDelApi(usuario, contrasena); //verifico si existe el mail contra la API. Lo hago en este momento,
//ya que al ser una api de prueba no permite la comprobacion de la validez del
//token devuelto desde las otras paginas de nuestro sitio.
if (esValido == true) {
//[Link]("usuarioEnLinea", usuario); //si es valido lo guardo en la variable de sesion
}
return;
}
1
/* Valida el formato del email */
function validaEmail(usuario) {
var formatoValido = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
if ([Link](formatoValido)) {
return true;
} else {
return false;
}
}
/* Valida la contraseña */
function validaContrasena(contrasena) { //Vamos a buscar al menos 1 mayuscula, 1 minuscula, 1 numero y 6
caracteres (8 caracteres como minimo)
texto = [Link]();
mayusculas = false;
minusculas = false;
numeros = false;
largo = false;
for (i = 0; i < [Link]; i++) {
if (texto[i] == texto[i].toUpperCase()) {
mayusculas = true;
}
if (texto[i] == texto[i].toLowerCase()) {
minusculas = true;
}
if (!isNaN(texto[i])) {
numeros = true;
}
}
if ([Link] >= 8) {
largo = true;
}
if (minusculas && mayusculas && numeros && largo) {
[Link]('La contraseña es buena');
return true;
} else {
[Link]("La contraseña no sirve -" +
"Minusculas: " + boolstr(minusculas) + " - " +
"Mayusculas: " + boolstr(mayusculas) + " - " +
"Numeros: " + boolstr(numeros) + " - " +
"Largo: " + [Link] + " " + boolstr(largo))
return false;
}
}
function boolstr(val) {
if (val == true) {
2
return "true";
} else {
return "false";
}
}
function resetAnimacion(element) {
var el = [Link](element);
[Link] = 'none';
[Link]; /* trigger reflow */
[Link] = null;
return;
}
//funcion para manejar los errores
function manejarErrores(elementId, errorId, esValido) {
const element = [Link](elementId);
const errorElement = [Link](errorId);
resetAnimacion(elementId);
if (!esValido) { //si la variable esValido es falso muestro las alertas rojas
/* [Link]({
html: '<span style="font-size: 20px;">Acceso inválido. Por favor, inténtelo otra vez.</span>'
}); */
[Link] = "block";
[Link] = "border:3px solid lightgrey ; animation-name: blinking; animation-duration: 1s;animation-iteration-count: 4;";
} else {
[Link] = "none";
[Link] = "2px solid var(--color-relleno)";
}
}
/* Funcion de comunicacion con el API con POST */
/* datos mandados con la solicutud POST */
async function leoDatosDelApi(usuario, contrasena) {
[Link]('botonIniciarSesion').disabled = true; // deshabilito el boton de submit
[Link]('botonIniciarSesion').style = 'background-color:grey'; // lo muestro gris
let text;
try {
const resp = await fetch(direccion + '/servlet/applogon', {
method: 'POST',
headers:{
'Content-Type': 'application/x-www-form-urlencoded'
},
body: new URLSearchParams({
'email': `${usuario}`,
'contrasena': `${contrasena}`
3
})
});
text = await [Link]();
//[Link]("Fetch: "+ [Link]);
//Si el json contiene este msj de error, salgo
if ([Link] == "#Error#"){
/* alert ("Usuario no encontrado."); */
[Link]({
title: "Usuario y/o contraseña incorrecto.",
icon: "error",
/* showCancelButton: true, */
confirmButtonColor: "#3085d6",
/* cancelButtonColor: "#d33", */
/* cancelButtonText: "Cancelar", */
confirmButtonText: "Continuar"
})
[Link]('botonIniciarSesion').disabled = false;
[Link]('botonIniciarSesion').style = 'var(--color-azul)'; // lo muestro normal azul
return;
};
if ([Link] == false){
[Link]("El usuario no esta activo, consulte con el administrador");
/* alert("El usuario no esta activo, consulte con el administrador"); */
[Link]({
title: "El usuario no esta activo.",
text: "¡Consulte con el administrador para la reactivación!",
icon: "warning",
/* showCancelButton: true, */
confirmButtonColor: "#3085d6",
/* cancelButtonColor: "#d33", */
/* cancelButtonText: "Cancelar", */
confirmButtonText: "Continuar"
})
[Link]('botonIniciarSesion').disabled = false;
[Link]('botonIniciarSesion').style = 'var(--color-azul)'; // lo muestro normal azul
return;
};
if ([Link] == true){
[Link]("esadmin",[Link]);
4
};
//Si llega hasta aca seguro fue encontrado en la DB, asi que lo cargo en la variable de sesion
[Link]("usuarioEnLinea", [Link]);
//const obj = await [Link](text);
}catch (error){
//[Link](error);
[Link]("No se ha encontrado ese usuario")
};
estado = 1;
verificoLogin();
//data_function(text);
return;
}
function url_redirect(url) { //funcion para volver a la landing page al loguear con exito
var X = setTimeout(function () {
[Link](url);
return true;
}, 300);
if ([Link] = url) {
clearTimeout(X);
return true;
} else {
if ([Link] = url) {
clearTimeout(X);
return true;
} else {
clearTimeout(X);
[Link](url);
return true;
}
}
return false;
};
function mostrarPSW() { //Checkbox para mostrar/ocultar la contraseña
var x = [Link]("contrasena");
if ([Link] === "password") {
[Link] = "text";
} else {
[Link] = "password";
}
}
5
6