swimmingArt/public/piscina.html

195 lines
9.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Editor de Formación SwimmingArt</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css">
<link rel="stylesheet" href="css/editorPiscina.css">
<link rel="stylesheet" href="css/navbar.css">
<script src="https://unpkg.com/wavesurfer.js"></script>
<script src="https://cdn.jsdelivr.net/npm/konva@9.2.0/konva.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
</head>
<body>
<!-- NAV -->
<nav class="navbar navbar-expand-lg navbar-dark bg-primary sticky-top shadow-sm px-4 py-3">
<div class="container-fluid">
<a class="navbar-brand fw-bold text-white">SwimmingArt</a>
<div class="ms-auto d-flex gap-4 align-items-center">
<a href="coach.html" class="nav-link text-white" data-i18n="nav.init">Inicializar Rutina</a>
<a href="equipoDisponibles.html" class="nav-link text-white" data-i18n="nav.equip">Equipos Disponibles</a>
<div class="dropdown">
<button class="btn btn-outline-light dropdown-toggle d-flex align-items-center gap-2 px-3 py-1" type="button" id="userDropdown" data-bs-toggle="dropdown" aria-expanded="false">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-person-circle" viewBox="0 0 16 16">
<path d="M11 10a3 3 0 1 1-6 0 3 3 0 0 1 6 0z"/>
<path fill-rule="evenodd" d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm8-7a7 7 0 0 0-4.546 12.174c.03-.256.071-.512.124-.767C4.28 10.798 5.94 10 8 10s3.72.798 4.422 2.407c.053.255.094.511.124.767A7 7 0 0 0 8 1z"/>
</svg>
<span id="nombreUsuarioHeader" class="fw-semibold">Usuario</span>
</button>
<ul class="dropdown-menu dropdown-menu-end text-center p-3"
aria-labelledby="userDropdown"
style="background-color: #0d6efd; color: white; border-radius: 0 0 8px 8px; min-width: 100%; max-width: 250px;">
<!-- Mostrar rol -->
<li class="mb-2">
<span id="nombreUsuarioDropdown" class="fw-semibold text-white d-block">Coach</span>
</li>
<!-- Selector de idioma alineado -->
<li class="mb-1">
<div class="d-flex align-items-center justify-content-center gap-2 w-100">
<i class="bi bi-globe" style="color: white; font-size: 1rem;"></i>
<select id="langSelector" class="form-select form-select-sm" style="border: none; border-radius: 6px; max-width: 140px;">
<option value="es">Español</option>
<option value="en">English</option>
<option value="fr">Français</option>
</select>
</div>
</li>
<!-- Botón salir pegado -->
<li>
<button class="btn btn-danger btn-sm w-100" onclick="logout()" data-i18n="logout">Salir</button>
</li>
</ul>
</ul>
</div>
</div>
</div>
</nav>
<main class="container-xl px-4 my-4">
<section class="mb-4">
<h2 id="tituloRutina" class="fw-bold fs-2 mb-2" data-i18n="editor.titulo">Editor de Formación</h2>
<div class="d-flex flex-wrap gap-3 small text-muted">
<div><strong data-i18n="editor.tipo">Tipo:</strong> <span id="tipoRutina">Cargando...</span></div>
<div><strong data-i18n="editor.modalidad">Modalidad:</strong> <span id="modalidadRutina">Cargando...</span></div>
</div>
</section>
<div class="row gx-4 gy-4">
<div class="col-lg-4">
<div class="card p-4 h-100 d-flex flex-column">
<h5 class="fw-semibold mb-3 text-primary" data-i18n="editor.agregar">Agregar Atleta</h5>
<div class="mb-3">
<label for="selectAtleta" class="form-label" data-i18n="editor.seleccionarAtleta">Seleccionar atleta</label>
<select id="selectAtleta" class="form-select"></select>
</div>
<div class="mb-3">
<label for="rolAtleta" class="form-label" data-i18n="editor.rol">Rol</label>
<select id="rolAtleta" class="form-select">
<option value="" data-i18n="editor.rolSeleccionar">Seleccionar rol</option>
<option value="volador" data-i18n="editor.volador">Volador</option>
<option value="pilar" data-i18n="editor.pilar">Pilar</option>
<option value="otro" data-i18n="editor.otro">Otro</option>
</select>
</div>
<div class="mb-3">
<label for="idPersonalizado" class="form-label" data-i18n="editor.idPers">ID personalizado</label>
<input type="text" id="idPersonalizado" class="form-control" placeholder="Ej: A, 1, V2" data-i18n-placeholder="editor.idEj" readonly>
</div>
<div class="mb-3">
<label for="figura" class="form-label" data-i18n="editor.figura">Figura técnica</label>
<input type="text" id="figura" class="form-control" placeholder="Ej: Barracuda, Flamingo..." data-i18n-placeholder="editor.figuraEj" autocomplete="off">
<small id="nombreFiguraTraducido" class="form-text text-muted"></small>
<div id="sugerenciasFigura" class="list-group position-relative"></div>
<div id="previewFigura" class="text-center mt-3 mb-3"></div>
</div>
<div class="mb-3">
<label for="tipoElemento" class="form-label" data-i18n="editor.tipoElemento">Tipo de elemento</label>
<select id="tipoElemento" class="form-select">
<option value="TRE">TRE</option>
<option value="híbrido">Híbrido</option>
<option value="transición" selected>Transición</option>
</select>
</div>
<div class="mb-4">
<label for="codigoElemento" class="form-label" data-i18n="editor.codigoElemento">Código del elemento</label>
<input type="text" id="codigoElemento" class="form-control" placeholder="Ej: TRE 1A, H4..." data-i18n-placeholder="editor.codigoEj">
</div>
<button id="btnAgregarAtleta" class="btn btn-primary mt-auto" data-i18n="editor.btnAgregar">Añadir Atleta</button>
</div>
</div>
<div class="col-lg-8 d-flex flex-column gap-3">
<div class="card p-4">
<h5 class="fw-semibold mb-3 text-primary" data-i18n="editor.piscina">Piscina</h5>
<div class="mb-3">
<label for="tipoPiscina" class="form-label" data-i18n="editor.tipoPiscina">Tipo de piscina</label>
<select id="tipoPiscina" class="form-select form-select-sm w-100" style="max-width: 280px;">
<option value="olimpica" data-i18n="editor.olimpica">Olímpica (50m x 25m)</option>
<option value="semiolimpica" data-i18n="editor.semiolimpica">Semiolímpica (25m x 12.5m)</option>
<option value="fosa" data-i18n="editor.fosa">Fosa/Poza (20m x 20m)</option>
</select>
</div>
<div id="piscinaContainer" class="border rounded p-2 mb-4" style="width: 100%; height: auto;">
<div id="piscina"></div>
</div>
<div class="d-flex align-items-center gap-2 flex-wrap mb-3">
<button id="btnEditarFormacion" class="btn btn-outline-secondary btn-sm">✏ Editar formación</button>
<button id="btnEliminarFormacion" class="btn btn-outline-danger btn-sm">🗑 Eliminar Formación</button>
</div>
<label class="form-label fw-semibold" data-i18n="editor.linea">Línea de Tiempo</label>
<div id="lineaTiempo" class="timeline-placeholder d-flex flex-wrap gap-2 mb-3"></div>
<!-- Reproductor abajo -->
<div class="mb-3">
<div id="waveform" style="height: 80px;"></div>
<div class="text-end mt-2">
<button id="playPauseBtn" class="btn btn-outline-primary btn-sm" data-i18n="editor.play">▶ Reproducir</button>
</div>
</div>
</div>
</div>
<div class="card p-4 mt-4">
<h5 class="fw-semibold mb-3 text-primary" data-i18n="editor.datos">Datos de Formación</h5>
<div class="row gy-3">
<div class="col-md-4">
<label for="nombreFormacion" class="form-label" data-i18n="editor.nombre">Nombre</label>
<input type="text" id="nombreFormacion" class="form-control" placeholder="Nombre de la formación" data-i18n-placeholder="editor.nombreEj">
</div>
<div class="col-md-4">
<label for="duracionFormacion" class="form-label" data-i18n="editor.duracion">Duración (segundos)</label>
<input type="number" id="duracionFormacion" class="form-control" min="1" placeholder="Ej: 5" data-i18n-placeholder="editor.duracionEj">
</div>
<div class="col-md-4">
<label for="notasFormacion" class="form-label" data-i18n="editor.notas">Notas tácticas</label>
<textarea id="notasFormacion" class="form-control" rows="1" placeholder="Instrucciones, marcajes, etc." data-i18n-placeholder="editor.notasEj"></textarea>
</div>
</div>
<div class="text-end mt-4">
<button id="btnGuardarFormacion" class="btn btn-primary" data-i18n="editor.guardar">Guardar Formación</button>
</div>
</div>
</main>
<audio id="audioPlayer" class="d-none" controls></audio>
<script src="https://cdn.jsdelivr.net/npm/sortablejs@1.15.0/Sortable.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
<script src="js/traduccionPiscina.js"></script>
<script type="module" src="js/piscina.js"></script>
</body>
</html>