137 lines
3.9 KiB
JavaScript
137 lines
3.9 KiB
JavaScript
const duracionesPorModalidadYTipo = {
|
|
solo: {
|
|
técnica: { texto: "2:00", valor: 120 },
|
|
libre: { texto: "2:15", valor: 135 }
|
|
},
|
|
duo: {
|
|
técnica: { texto: "2:20", valor: 140 },
|
|
libre: { texto: "2:45", valor: 165 }
|
|
},
|
|
equipo: {
|
|
técnica: { texto: "2:50", valor: 170 },
|
|
libre: { texto: "3:30", valor: 210 }
|
|
}
|
|
};
|
|
|
|
function actualizarDuracionTexto() {
|
|
const tipo = document.getElementById("tipoCompetencia").value;
|
|
const modalidad = document.getElementById("modalidad").value;
|
|
const input = document.getElementById("duration");
|
|
|
|
if (duracionesPorModalidadYTipo[modalidad] && duracionesPorModalidadYTipo[modalidad][tipo]) {
|
|
input.value = duracionesPorModalidadYTipo[modalidad][tipo].texto;
|
|
input.dataset.segundos = duracionesPorModalidadYTipo[modalidad][tipo].valor;
|
|
} else {
|
|
input.value = traducciones[langActual].form.durationPlaceholder;
|
|
input.dataset.segundos = "";
|
|
}
|
|
}
|
|
|
|
document.getElementById("tipoCompetencia").addEventListener("change", actualizarDuracionTexto);
|
|
document.getElementById("modalidad").addEventListener("change", actualizarDuracionTexto);
|
|
|
|
// Envío del formulario
|
|
document.getElementById('rutinaForm').addEventListener('submit', async function (e) {
|
|
e.preventDefault();
|
|
|
|
const title = document.getElementById('title').value.trim();
|
|
const duration = parseInt(document.getElementById('duration').dataset.segundos);
|
|
const nombreCompetencia = document.getElementById('nombreCompetencia').value.trim();
|
|
const tipoCompetencia = document.getElementById('tipoCompetencia').value;
|
|
const modalidad = document.getElementById('modalidad').value;
|
|
const musicFile = document.getElementById('music').files[0];
|
|
|
|
if (!title || isNaN(duration) || !nombreCompetencia || !tipoCompetencia || !modalidad) {
|
|
alert("Completa todos los campos.");
|
|
return;
|
|
}
|
|
|
|
let musicUrl = "";
|
|
|
|
if (musicFile) {
|
|
const formData = new FormData();
|
|
formData.append('music', musicFile);
|
|
|
|
try {
|
|
const uploadRes = await fetch('/api/rutinas/upload/music', {
|
|
method: 'POST',
|
|
body: formData
|
|
});
|
|
|
|
const uploadData = await uploadRes.json();
|
|
|
|
if (!uploadRes.ok) {
|
|
throw new Error(uploadData.error || 'Error al subir archivo');
|
|
}
|
|
|
|
musicUrl = uploadData.url;
|
|
} catch (err) {
|
|
console.error('❌ Error al subir música:', err);
|
|
alert('Error al subir el archivo de música. Intenta de nuevo.');
|
|
return;
|
|
}
|
|
}
|
|
|
|
const routine = {
|
|
title,
|
|
duration,
|
|
nombreCompetencia,
|
|
tipoCompetencia,
|
|
modalidad,
|
|
participantes: [],
|
|
createdBy: "coach-id-ejemplo",
|
|
musicUrl,
|
|
elements: [],
|
|
formaciones: []
|
|
};
|
|
|
|
try {
|
|
const res = await fetch('/api/rutinas', {
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: JSON.stringify(routine)
|
|
});
|
|
|
|
const data = await res.json();
|
|
|
|
if (res.ok) {
|
|
alert("Rutina guardada correctamente.");
|
|
window.location.href = "equipoDisponibles.html";
|
|
} else {
|
|
alert("Error al guardar la rutina: " + (data.message || "Error desconocido"));
|
|
}
|
|
} catch (err) {
|
|
console.error(err);
|
|
alert("Error al guardar la rutina.");
|
|
}
|
|
});
|
|
|
|
function logout() {
|
|
sessionStorage.clear();
|
|
alert("Sesión cerrada");
|
|
window.location.href = "../index.html";
|
|
}
|
|
|
|
// Mostrar nombre del usuario logueado en el header
|
|
window.addEventListener('DOMContentLoaded', async () => {
|
|
const userId = sessionStorage.getItem("userId");
|
|
|
|
if (!userId) {
|
|
alert("Sesión expirada, inicia sesión de nuevo.");
|
|
window.location.href = "index.html";
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const res = await fetch(`/api/users/${userId}`);
|
|
const user = await res.json();
|
|
|
|
if (user?.name) {
|
|
document.getElementById("nombreUsuarioHeader").textContent = user.name;
|
|
document.getElementById("nombreUsuarioDropdown").textContent = "Coach " + user.name;
|
|
}
|
|
} catch (err) {
|
|
console.error("❌ Error al obtener datos del usuario:", err);
|
|
}
|
|
});
|