Vacaciones: app de peticiones de vacaciones para restaurante
Cargos configurables por ronda (por defecto Camarero/a, Encargado, Cocina), calendario con días recuadrados, recuento de compañeros del mismo cargo por día y minileyenda por mes. Panel de administración con login, rondas y exportación a Excel. Node + Express + SQLite, listo para Docker/Coolify. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
<!doctype html>
|
||||
<html lang="es">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
|
||||
<title>Administración · Vacaciones</title>
|
||||
<meta name="theme-color" content="#f6f0e3" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400..700;1,9..144,400..700&family=Karla:wght@400;700;800&display=swap" rel="stylesheet" />
|
||||
<link rel="stylesheet" href="/css/styles.css" />
|
||||
</head>
|
||||
<body>
|
||||
<div class="page page--wide">
|
||||
<header class="masthead">
|
||||
<p class="kicker">Administración</p>
|
||||
<h1>Rondas de <em>vacaciones</em></h1>
|
||||
<p class="sub">Crea rondas, comparte la URL con el equipo y descarga las peticiones</p>
|
||||
</header>
|
||||
|
||||
<!-- Login -->
|
||||
<section id="login-card" class="card hidden" style="max-width: 420px; margin-inline: auto;">
|
||||
<h2>Acceso</h2>
|
||||
<form id="login-form">
|
||||
<label for="password">Contraseña de administración</label>
|
||||
<input id="password" type="password" autocomplete="current-password" required />
|
||||
<div class="error-msg" id="login-error"></div>
|
||||
<button class="btn" type="submit">Entrar</button>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<!-- Panel -->
|
||||
<div id="panel" class="hidden">
|
||||
<section class="card">
|
||||
<h2>Nueva ronda</h2>
|
||||
<form id="create-form">
|
||||
<div class="form-row">
|
||||
<div>
|
||||
<label for="round-name">Local</label>
|
||||
<input id="round-name" type="text" maxlength="80" placeholder="P. ej. Restaurante Centro" required />
|
||||
</div>
|
||||
<div>
|
||||
<label for="round-year">Año</label>
|
||||
<input id="round-year" type="number" min="2020" max="2100" required />
|
||||
</div>
|
||||
</div>
|
||||
<label for="round-roles">Cargos</label>
|
||||
<input id="round-roles" type="text" maxlength="200" value="Camarero/a, Encargado, Cocina" />
|
||||
<p class="field-hint">Sepáralos con comas. El equipo elegirá uno al registrarse y verá el recuento de su mismo cargo.</p>
|
||||
<div class="error-msg" id="create-error"></div>
|
||||
<button class="btn btn--accent" type="submit">Crear ronda y obtener URL</button>
|
||||
</form>
|
||||
</section>
|
||||
|
||||
<section class="card">
|
||||
<h2>Rondas</h2>
|
||||
<div id="rounds-list"></div>
|
||||
</section>
|
||||
|
||||
<button class="btn btn--ghost" id="logout-btn">Cerrar sesión</button>
|
||||
</div>
|
||||
|
||||
<footer class="colophon">Panel del administrador</footer>
|
||||
</div>
|
||||
<div class="toast" id="toast"></div>
|
||||
|
||||
<script src="/js/admin.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user