${botonUnirseHTML}
@@ -218,48 +454,7 @@ function mostrarSalaBuscador(
});
- // =================================================
- // TARJETA DE LA SALA
- // =================================================
-
- const salaHTML = `
-
- `;
-
-
- // =================================================
- // IMPORTANTE
- // =================================================
- //
- // NO usamos .html() aquí porque eso eliminaría
- // las salas que ya se hayan mostrado.
- //
- // Usamos .append() para añadir cada nueva sala.
- //
-
- $("#contenedorSalas").append(
- salaHTML
- );
+ return equiposHTML;
}
@@ -279,9 +474,14 @@ $("#btnCrearSala").on(
const nombreEquipo2 =
$("#nombreEquipo2").val().trim();
+
let valido = true;
- // Limpiar errores anteriores
+
+ // -----------------------------------------------
+ // LIMPIAR ERRORES
+ // -----------------------------------------------
+
$(".mensaje-error-sala").remove();
$(".input-kahoot")
@@ -340,7 +540,7 @@ $("#btnCrearSala").on(
// -----------------------------------------------
- // LOS EQUIPOS NO PUEDEN TENER EL MISMO NOMBRE
+ // COMPROBAR NOMBRES IGUALES
// -----------------------------------------------
if (
@@ -358,14 +558,17 @@ $("#btnCrearSala").on(
}
- // Si hay errores, no continuar
+ // -----------------------------------------------
+ // SI HAY ERRORES
+ // -----------------------------------------------
+
if (!valido) {
return;
}
// -----------------------------------------------
- // DESACTIVAR BOTÓN
+ // BOTÓN
// -----------------------------------------------
const boton = $("#btnCrearSala");
@@ -376,7 +579,7 @@ $("#btnCrearSala").on(
// -----------------------------------------------
- // CREAR SALA
+ // PETICIÓN
// -----------------------------------------------
$.ajax({
@@ -386,8 +589,11 @@ $("#btnCrearSala").on(
data: {
orden: "crear",
+
nombrePartida: nombreSala,
+
nombreEquipo1: nombreEquipo1,
+
nombreEquipo2: nombreEquipo2,
},
@@ -432,7 +638,7 @@ $("#btnCrearSala").on(
// =====================================================
-// MOSTRAR ERROR DE VALIDACIÓN
+// MOSTRAR ERROR
// =====================================================
function mostrarError(
@@ -444,8 +650,11 @@ function mostrarError(
input.addClass("is-invalid");
input.after(`
-
+
+
${mensaje}
+
`);
}
@@ -466,4 +675,4 @@ $(document).on(
.next(".mensaje-error-sala")
.remove();
}
-);
+);
\ No newline at end of file
diff --git a/js/sala.js b/js/sala.js
index b12547e..758f3c1 100644
--- a/js/sala.js
+++ b/js/sala.js
@@ -27,7 +27,7 @@ function comprobarSalaUsuario() {
$("#contenedorCrearSala").show();
- cargarSalas();
+ iniciarActualizacionSalas();
} else {
usuarioYaEstaEnEquipo = true;
@@ -38,10 +38,7 @@ function comprobarSalaUsuario() {
},
error: function (xhr, status, error) {
- console.error(
- "Error al comprobar la sala del usuario:",
- error
- );
+ console.error("Error al comprobar la sala del usuario:", error);
usuarioYaEstaEnEquipo = false;
@@ -95,10 +92,7 @@ function cargarSalaCompleta(idPartida) {
},
error: function (xhr, status, error) {
- console.error(
- "Error al obtener la sala:",
- error
- );
+ console.error("Error al obtener la sala:", error);
},
});
}
@@ -134,19 +128,13 @@ function cargarInformacionSalaCompleta(partida) {
},
error: function (xhr, status, error) {
- console.error(
- "Error al obtener jugadores:",
- error
- );
+ console.error("Error al obtener jugadores:", error);
},
});
},
error: function (xhr, status, error) {
- console.error(
- "Error al obtener equipos:",
- error
- );
+ console.error("Error al obtener equipos:", error);
},
});
}
@@ -176,10 +164,7 @@ function actualizarSalaUsuario(idPartida) {
},
error: function (xhr, status, error) {
- console.error(
- "Error al actualizar la sala:",
- error
- );
+ console.error("Error al actualizar la sala:", error);
},
});
}
@@ -211,27 +196,17 @@ function cargarInformacionSala(partida) {
},
success: function (jugadores) {
- mostrarEquipos(
- partida,
- equipos,
- jugadores
- );
+ mostrarEquipos(partida, equipos, jugadores);
},
error: function (xhr, status, error) {
- console.error(
- "Error al obtener jugadores:",
- error
- );
+ console.error("Error al obtener jugadores:", error);
},
});
},
error: function (xhr, status, error) {
- console.error(
- "Error al obtener equipos:",
- error
- );
+ console.error("Error al obtener equipos:", error);
},
});
}
@@ -241,33 +216,32 @@ function cargarInformacionSala(partida) {
// =====================================================
function mostrarSala(partida, equipos, jugadores) {
- const contenedor = $("#contenedorSalas");
+ const contenedor = $("#contenedorSalas");
- let equiposHTML = "";
+ let equiposHTML = "";
- equipos.forEach(function (equipo) {
- const jugadoresEquipo = jugadores.filter(function (jugador) {
- return jugador.idEquipo == equipo.idEquipo;
- });
+ equipos.forEach(function (equipo) {
+ const jugadoresEquipo = jugadores.filter(function (jugador) {
+ return jugador.idEquipo == equipo.idEquipo;
+ });
- let jugadoresHTML = "";
+ let jugadoresHTML = "";
- if (jugadoresEquipo.length > 0) {
- jugadoresEquipo.forEach(function (jugador) {
- const esHost =
- jugador.idUsuario == partida.idUsuario;
+ if (jugadoresEquipo.length > 0) {
+ jugadoresEquipo.forEach(function (jugador) {
+ const esHost = jugador.idUsuario == partida.idUsuario;
- jugadoresHTML += `
+ jugadoresHTML += `
${
- esHost
- ? ''
- : ''
+ esHost
+ ? ''
+ : ''
}
@@ -275,25 +249,25 @@ function mostrarSala(partida, equipos, jugadores) {
${
- esHost
- ? `
+ esHost
+ ? `
HOST
`
- : ""
+ : ""
}
`;
- });
- } else {
- jugadoresHTML = `
+ });
+ } else {
+ jugadoresHTML = `
Sin jugadores
`;
- }
+ }
- equiposHTML += `
+ equiposHTML += `
@@ -306,15 +280,14 @@ function mostrarSala(partida, equipos, jugadores) {
`;
- });
+ });
- const esHost =
- partida.idUsuario == idUsuarioSesion;
+ const esHost = partida.idUsuario == idUsuarioSesion;
- let botonIniciarHTML = "";
+ let botonIniciarHTML = "";
- if (esHost) {
- botonIniciarHTML = `
+ if (esHost) {
+ botonIniciarHTML = `
@@ -324,9 +297,9 @@ function mostrarSala(partida, equipos, jugadores) {
`;
- }
+ }
- const salaHTML = `
+ const salaHTML = `
@@ -353,11 +326,7 @@ function mostrarSala(partida, equipos, jugadores) {
- ${
- esHost
- ? botonIniciarHTML
- : ""
- }
+ ${esHost ? botonIniciarHTML : ""}
@@ -368,208 +337,159 @@ function mostrarSala(partida, equipos, jugadores) {
`;
- // IMPORTANTE:
- // El usuario está dentro de una única sala.
- // Por eso aquí SÍ queremos reemplazar.
- contenedor.html(salaHTML);
+ // IMPORTANTE:
+ // El usuario está dentro de una única sala.
+ // Por eso aquí SÍ queremos reemplazar.
+ contenedor.html(salaHTML);
}
-
// =====================================================
// UNIRSE A UN EQUIPO
// =====================================================
-$(document).on(
- "click",
- ".btn-unirse-equipo",
- function () {
- const boton = $(this);
+$(document).on("click", ".btn-unirse-equipo", function () {
+ const boton = $(this);
- const idEquipo = boton.data("id-equipo");
- const idPartida = boton.data("id-partida");
+ const idEquipo = boton.data("id-equipo");
+ const idPartida = boton.data("id-partida");
- boton
- .prop("disabled", true)
- .text("Uniéndose...");
+ boton.prop("disabled", true).text("Uniéndose...");
- $.ajax({
- url: "controladores/controladorEquipoxUsuario.php",
- type: "POST",
- dataType: "json",
+ $.ajax({
+ url: "controladores/controladorEquipoxUsuario.php",
+ type: "POST",
+ dataType: "json",
- data: {
- orden: "registrarUsuarioEnEquipo",
- idEquipo: idEquipo,
- },
+ data: {
+ orden: "registrarUsuarioEnEquipo",
+ idEquipo: idEquipo,
+ },
- success: function (respuesta) {
- if (respuesta.error) {
- alert(respuesta.error);
+ success: function (respuesta) {
+ if (respuesta.error) {
+ alert(respuesta.error);
- boton
- .prop("disabled", false)
- .text("Unirse");
+ boton.prop("disabled", false).text("Unirse");
- return;
- }
+ return;
+ }
- usuarioYaEstaEnEquipo = true;
+ usuarioYaEstaEnEquipo = true;
- $("#contenedorCrearSala").hide();
- $("#contenedorSalas").empty();
+ $("#contenedorCrearSala").hide();
+ $("#contenedorSalas").empty();
- cargarSalaUsuario(idPartida);
- },
+ cargarSalaUsuario(idPartida);
+ },
- error: function (xhr, status, error) {
- console.error(
- "Error al unirse al equipo:",
- error
- );
+ error: function (xhr, status, error) {
+ console.error("Error al unirse al equipo:", error);
- alert(
- "No se ha podido unir al equipo."
- );
+ alert("No se ha podido unir al equipo.");
- boton
- .prop("disabled", false)
- .text("Unirse");
- },
- });
- }
-);
+ boton.prop("disabled", false).text("Unirse");
+ },
+ });
+});
// =====================================================
// ABANDONAR SALA - ABRIR MODAL
// =====================================================
-$(document).on(
- "click",
- ".btn-abandonar-sala",
- function () {
- botonAbandonarReferencia = $(this);
+$(document).on("click", ".btn-abandonar-sala", function () {
+ botonAbandonarReferencia = $(this);
- const esHost =
- $(this).data("es-host") === true ||
- $(this).data("es-host") === "true";
+ const esHost =
+ $(this).data("es-host") === true || $(this).data("es-host") === "true";
- const titulo =
- $("#modalAbandonarSalaLabel");
+ const titulo = $("#modalAbandonarSalaLabel");
- const mensaje =
- $("#modalAbandonarSalaMensaje");
+ const mensaje = $("#modalAbandonarSalaMensaje");
- const botonConfirmar =
- $("#btnConfirmarAbandonar");
+ const botonConfirmar = $("#btnConfirmarAbandonar");
- if (esHost) {
- titulo.text("¿Abandonar la sala?");
+ if (esHost) {
+ titulo.text("¿Abandonar la sala?");
- mensaje.text(
- "Si abandonas la sala como anfitrión, la partida terminará para todos los jugadores."
- );
-
- botonConfirmar.text(
- "Sí, terminar partida"
- );
- } else {
- titulo.text("¿Abandonar la sala?");
-
- mensaje.text(
- "Si sales de la sala, perderás tu lugar en el equipo."
- );
-
- botonConfirmar.text("Sí, salir");
- }
-
- const modal = new bootstrap.Modal(
- document.getElementById(
- "modalAbandonarSala"
- )
+ mensaje.text(
+ "Si abandonas la sala como anfitrión, la partida terminará para todos los jugadores.",
);
- modal.show();
+ botonConfirmar.text("Sí, terminar partida");
+ } else {
+ titulo.text("¿Abandonar la sala?");
+
+ mensaje.text("Si sales de la sala, perderás tu lugar en el equipo.");
+
+ botonConfirmar.text("Sí, salir");
}
-);
+
+ const modal = new bootstrap.Modal(
+ document.getElementById("modalAbandonarSala"),
+ );
+
+ modal.show();
+});
// =====================================================
// CONFIRMAR ABANDONAR SALA
// =====================================================
-$(document).on(
- "click",
- "#btnConfirmarAbandonar",
- function () {
- const modalEl =
- document.getElementById(
- "modalAbandonarSala"
- );
+$(document).on("click", "#btnConfirmarAbandonar", function () {
+ const modalEl = document.getElementById("modalAbandonarSala");
- const modalInstance =
- bootstrap.Modal.getInstance(modalEl);
+ const modalInstance = bootstrap.Modal.getInstance(modalEl);
- const btnConfirmar = $(this);
+ const btnConfirmar = $(this);
- btnConfirmar
- .prop("disabled", true)
- .text("Saliendo...");
+ btnConfirmar.prop("disabled", true).text("Saliendo...");
- $.ajax({
- url: "controladores/controladorEquipoxUsuario.php",
- type: "POST",
- dataType: "json",
+ $.ajax({
+ url: "controladores/controladorEquipoxUsuario.php",
+ type: "POST",
+ dataType: "json",
- data: {
- orden: "salirDeSala",
- },
+ data: {
+ orden: "salirDeSala",
+ },
- success: function (respuesta) {
- btnConfirmar
- .prop("disabled", false)
- .text("Sí, salir");
+ success: function (respuesta) {
+ btnConfirmar.prop("disabled", false).text("Sí, salir");
- if (modalInstance) {
- modalInstance.hide();
- }
+ if (modalInstance) {
+ modalInstance.hide();
+ }
- if (respuesta.error) {
- alert(respuesta.error);
- return;
- }
+ if (respuesta.error) {
+ alert(respuesta.error);
+ return;
+ }
- usuarioYaEstaEnEquipo = false;
+ usuarioYaEstaEnEquipo = false;
- if (intervaloSala) {
- clearInterval(intervaloSala);
- intervaloSala = null;
- }
+ if (intervaloSala) {
+ clearInterval(intervaloSala);
+ intervaloSala = null;
+ }
- $("#contenedorCrearSala").show();
+ $("#contenedorCrearSala").show();
- cargarSalas();
- },
+ cargarSalas();
+ },
- error: function (xhr, status, error) {
- console.error(
- "Error al salir de la sala:",
- error
- );
+ error: function (xhr, status, error) {
+ console.error("Error al salir de la sala:", error);
- alert(
- "No se pudo salir de la sala."
- );
+ alert("No se pudo salir de la sala.");
- btnConfirmar
- .prop("disabled", false)
- .text("Sí, salir");
+ btnConfirmar.prop("disabled", false).text("Sí, salir");
- if (modalInstance) {
- modalInstance.hide();
- }
- },
- });
- }
-);
+ if (modalInstance) {
+ modalInstance.hide();
+ }
+ },
+ });
+});
// =====================================================
// AUXILIARES
@@ -581,29 +501,19 @@ function escapeHTML(texto) {
.html();
}
-function mostrarEquipos(
- partida,
- equipos,
- jugadores
-) {
+function mostrarEquipos(partida, equipos, jugadores) {
let equiposHTML = "";
equipos.forEach(function (equipo) {
- const jugadoresEquipo =
- jugadores.filter(function (jugador) {
- return (
- jugador.idEquipo ==
- equipo.idEquipo
- );
- });
+ const jugadoresEquipo = jugadores.filter(function (jugador) {
+ return jugador.idEquipo == equipo.idEquipo;
+ });
let jugadoresHTML = "";
if (jugadoresEquipo.length > 0) {
jugadoresEquipo.forEach(function (jugador) {
- const esHost =
- jugador.idUsuario ==
- partida.idUsuario;
+ const esHost = jugador.idUsuario == partida.idUsuario;
jugadoresHTML += `
- ${escapeHTML(
- equipo.nombreEquipo
- )}
+ ${escapeHTML(equipo.nombreEquipo)}
@@ -660,6 +566,5 @@ function mostrarEquipos(
`;
});
- $("#contenedorSalas .equipos")
- .html(equiposHTML);
+ $("#contenedorSalas .equipos").html(equiposHTML);
}