Merge branch 'pruebasJorge'

This commit is contained in:
2026-09-28 12:37:07 +02:00
8 changed files with 319 additions and 719 deletions
+22 -46
View File
@@ -1,13 +1,11 @@
// Función de escape colocada arriba para evitar el ReferenceError
function escapeHTML(str) {
return $("<div>").text(str ?? "").html();
}
// Comprobar estado de sesión al cargar la página
$(document).ready(function () {
comprobarSesion();
});
// Función auxiliar para escapar texto HTML y evitar XSS
function escapeHTML(str) {
return $("<div>").text(str ?? "").html();
}
// Comprobar estado de sesión al cargar la página
function comprobarSesion() {
@@ -20,12 +18,12 @@ function comprobarSesion() {
if (typeof respuesta === "string") {
respuesta = JSON.parse(respuesta);
}
const contenedor = $("#contenedorUsuarioCabecera");
contenedor.empty();
if (respuesta.activa && respuesta.usuario) {
// 1. Renderizar Menú de Usuario en la Cabecera
// Usuario autenticado: Mostrar Menú Dropdown
const htmlUsuario = `
<div class="dropdown">
<button class="btn user-dropdown-btn dropdown-toggle d-flex align-items-center gap-2"
@@ -50,12 +48,14 @@ function comprobarSesion() {
`;
contenedor.html(htmlUsuario);
// 2. Muestra el botón JUGAR y ajusta columnas
$("#colBotonJugar").removeClass("d-none");
$("#colRanking").removeClass("col-lg-8").addClass("col-lg-7 col-xl-8");
// Si estamos en la página principal, mostramos el botón JUGAR
if ($("#colBotonJugar").length) {
$("#colBotonJugar").removeClass("d-none");
$("#colRanking").removeClass("col-lg-8").addClass("col-lg-7 col-xl-8");
}
} else {
// 1. Renderizar Botones de Invitado
// No hay sesión: Mostrar botones de Login y Registro
const htmlInvitado = `
<button type="button" class="btn btn-kahoot-login rounded-pill px-4" data-bs-toggle="modal" data-bs-target="#modalLogin">
<i class="fa-solid fa-right-to-bracket me-1"></i> Iniciar Sesión
@@ -66,9 +66,11 @@ function comprobarSesion() {
`;
contenedor.html(htmlInvitado);
// 2. Ocultar el botón JUGAR y expandir ranking
$("#colBotonJugar").addClass("d-none");
$("#colRanking").removeClass("col-lg-7 col-xl-8").addClass("col-lg-8");
// Si estamos en la página principal, ocultamos el botón JUGAR
if ($("#colBotonJugar").length) {
$("#colBotonJugar").addClass("d-none");
$("#colRanking").removeClass("col-lg-7 col-xl-8").addClass("col-lg-8");
}
}
} catch (e) {
console.error("Error al procesar la respuesta de la sesión:", e);
@@ -76,9 +78,10 @@ function comprobarSesion() {
});
}
// Registro
// Evento Registro
$("#botonAceptarRegistro").click(function (event) {
event.preventDefault();
let nombreUsuario = $("#regNombre").val().trim();
let email = $("#regEmail").val().trim();
let contrasena = $("#regPassword").val();
@@ -128,7 +131,7 @@ $("#botonAceptarRegistro").click(function (event) {
});
});
// Login
// Evento Login
$("#botonAceptarLogin").click(function (event) {
event.preventDefault();
@@ -167,7 +170,7 @@ $("#botonAceptarLogin").click(function (event) {
});
});
// Cerrar sesión
// Evento Cerrar sesión (usa delegación de eventos por crearse dinámicamente)
$(document).on("click", "#botonCerrarSesion", function (event) {
event.preventDefault();
@@ -256,31 +259,6 @@ $("#botonAceptarLogin").click(function (event) {
return;
}
$.ajax({
method: "POST",
url: "controladores/controladorUsuario.php",
data: {
email: email,
contrasena: contrasena,
orden: "comprobarUsuario",
},
}).done(function (respuesta) {
if (typeof respuesta === "string") respuesta = JSON.parse(respuesta);
if (respuesta.error) {
$("#loginEmail").addClass("is-invalid");
$("#loginPassword").addClass("is-invalid");
$("#errorLogin").text(respuesta.error);
} else {
location.reload();
}
});
});
// Cerrar sesión (Usa delegación de eventos por si el botón se crea dinámicamente)
$(document).on("click", "#botonCerrarSesion", function (event) {
event.preventDefault();
$.ajax({
method: "POST",
url: "controladores/controladorUsuario.php",
@@ -294,6 +272,4 @@ $(document).on("click", "#botonCerrarSesion", function (event) {
window.location.href = "index.php";
}
});
});
});