| <!DOCTYPE html> |
| <html lang="es"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>Base de datos · Racing Santander</title> |
| <link rel="preconnect" href="https://fonts.googleapis.com"> |
| <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap" rel="stylesheet"> |
| <link rel="stylesheet" href="/static/styles.css?v=browse1"> |
| </head> |
| <body> |
|
|
| <header class="header"> |
| <h1>Base de datos <em>Racing Santander</em></h1> |
| <span class="subtitle">Stats Opta · valores Transfermarkt por temporada</span> |
| <span class="api-meta" id="apiMeta"></span> |
| </header> |
|
|
| <div class="filter-bar"> |
| <div class="filter-group"> |
| <div class="filter-label">Temporadas</div> |
| <div class="season-chips" id="seasonChips"></div> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Liga</div> |
| <div class="ms" id="leagueMs"> |
| <button type="button" class="ms-button" id="leagueMsBtn" aria-haspopup="listbox" aria-expanded="false"> |
| <span id="leagueMsLabel">Todas</span><span class="ms-count" id="leagueMsCount"></span> |
| </button> |
| <div class="ms-panel" role="listbox" aria-multiselectable="true"> |
| <div class="ms-panel-search"> |
| <input type="text" id="leagueMsSearch" placeholder="Buscar liga…" autocomplete="off"> |
| </div> |
| <div class="ms-panel-actions"> |
| <button type="button" id="leagueMsAll">Todas</button> |
| <button type="button" id="leagueMsNone">Ninguna</button> |
| </div> |
| <div class="ms-panel-list" id="leagueMsList"></div> |
| </div> |
| </div> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Posición</div> |
| <div class="position-chips" id="positionChips"></div> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Edad</div> |
| <div class="filter-range"> |
| <input type="number" class="filter-input" id="ageMin" placeholder="Min" min="14" max="45"> |
| <span>–</span> |
| <input type="number" class="filter-input" id="ageMax" placeholder="Max" min="14" max="45"> |
| </div> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Nacionalidad</div> |
| <input type="text" class="filter-input" id="natFilter" placeholder="ej. Argentina" autocomplete="off" style="width:120px;"> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Pie</div> |
| <select class="filter-select" id="footFilter"> |
| <option value="">Cualquiera</option> |
| <option value="right">Derecho</option> |
| <option value="left">Izquierdo</option> |
| <option value="both">Ambos</option> |
| </select> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Valor fin temp. (€M)</div> |
| <div class="filter-range"> |
| <input type="number" class="filter-input" id="mvMin" placeholder="Min" min="0" max="500" step="0.5"> |
| <span>–</span> |
| <input type="number" class="filter-input" id="mvMax" placeholder="Max" min="0" max="500" step="0.5"> |
| </div> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Min. minutos</div> |
| <input type="number" class="filter-input" id="minMinutes" placeholder="0" min="0" step="90" style="width:80px;"> |
| </div> |
| <div class="filter-group"> |
| <div class="filter-label">Fiabilidad match</div> |
| <select class="filter-select" id="confFilter"> |
| <option value="">Todas</option> |
| <option value="high">Alta (verificada)</option> |
| <option value="low">Baja (sin verificar)</option> |
| </select> |
| </div> |
| <div class="filter-count" id="filterCount"></div> |
| </div> |
|
|
| <section class="view active" id="view-table"> |
| <div class="table-view"> |
| <div class="table-toolbar"> |
| <div class="table-search"> |
| <input type="text" id="tableSearch" placeholder="Buscar jugador, equipo o liga…" autocomplete="off"> |
| </div> |
| <div class="table-meta"> |
| <span id="tableShownCount">0</span> / <span id="tableTotalCount">0</span> filas |
| </div> |
| </div> |
| <div class="data-table-wrap"> |
| <div class="data-table-scroll"> |
| <table class="data-table" id="dataTable"> |
| <thead> |
| <tr> |
| <th data-key="Jugador" class="sortable">Jugador <span class="sort-arrow"></span></th> |
| <th data-key="Posicion" class="sortable">Pos <span class="sort-arrow"></span></th> |
| <th data-key="Temporada" class="sortable">Temp. <span class="sort-arrow"></span></th> |
| <th data-key="age" class="sortable num">Edad <span class="sort-arrow"></span></th> |
| <th data-key="nationality" class="sortable">Nacionalidad <span class="sort-arrow"></span></th> |
| <th data-key="Competencia" class="sortable">Liga <span class="sort-arrow"></span></th> |
| <th data-key="Minutos totales" class="sortable num">Min <span class="sort-arrow"></span></th> |
| <th data-key="mv_eos" class="sorted desc num">Valor fin temp. <span class="sort-arrow">↓</span></th> |
| <th data-key="mv_eos_prev" class="sortable num">Valor temp-1 <span class="sort-arrow"></span></th> |
| <th>Fuente</th> |
| </tr> |
| </thead> |
| <tbody id="dataTableBody"></tbody> |
| </table> |
| </div> |
| </div> |
| </div> |
| </section> |
|
|
| <div class="drawer-backdrop" id="drawerBackdrop"></div> |
| <aside class="table-drawer" id="tableDrawer" aria-hidden="true"> |
| <div class="table-drawer-header"> |
| <h3 id="tableDrawerTitle">Detalle</h3> |
| <button class="table-drawer-close" id="tableDrawerClose" aria-label="Cerrar">×</button> |
| </div> |
| <div class="table-drawer-body" id="tableDrawerBody"></div> |
| </aside> |
|
|
| <script src="/static/app.js?v=browse1"></script> |
| </body> |
| </html> |
|
|