- Mapeo campos en base de datos: ubicacion→provincia, telefono→subcategoria, email→direccion, web→enlaceGoogleMaps y añadido puntuacion. - Migración suave (ensureColumn) para añadir las nuevas columnas sin perder datos existentes si la DB ya existía con el esquema antiguo. - Actualización de rutas del servidor para guardar/leer los nuevos campos y convertir el NULL a valor nulo por defecto en puntuacion. - Soporte PWA: añadido meta tags (manifest, theme-color, apple-touch-icon) y registro de service worker para instalación del app y shell offline.
55 lines
2.4 KiB
HTML
55 lines
2.4 KiB
HTML
<!doctype html>
|
|
<html lang="es">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Locales Españoles</title>
|
|
<meta name="description" content="Directorio colaborativo de negocios por toda España" />
|
|
<!-- No indexar el admin -->
|
|
<meta name="robots" content="index, follow" />
|
|
<!-- PWA -->
|
|
<link rel="manifest" href="/manifest.webmanifest" />
|
|
<meta name="theme-color" content="#8B0000" />
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png" />
|
|
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
|
<meta name="apple-mobile-web-app-title" content="LocalESP" />
|
|
<!-- Tabler Icons -->
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@tabler/icons-webfont@3.11.0/dist/tabler-icons.min.css" />
|
|
<style>
|
|
:root {
|
|
--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
|
|
--color-background-primary: #ffffff;
|
|
--color-background-secondary: #f5f5f7;
|
|
--color-text-primary: #1d1d1f;
|
|
--color-text-secondary: #6e6e73;
|
|
--color-text-tertiary: #aeaeb2;
|
|
--color-text-info: #1a73e8;
|
|
--color-border-secondary: #d2d2d7;
|
|
--color-border-tertiary: #e5e5ea;
|
|
--border-radius-md: 8px;
|
|
--border-radius-lg: 12px;
|
|
}
|
|
@media (prefers-color-scheme: dark) {
|
|
:root {
|
|
--color-background-primary: #1c1c1e;
|
|
--color-background-secondary: #2c2c2e;
|
|
--color-text-primary: #f5f5f7;
|
|
--color-text-secondary: #aeaeb2;
|
|
--color-text-tertiary: #636366;
|
|
--color-border-secondary: #3a3a3c;
|
|
--color-border-tertiary: #2c2c2e;
|
|
}
|
|
}
|
|
* { box-sizing: border-box; }
|
|
body { margin: 0; background: var(--color-background-secondary); color: var(--color-text-primary); font-family: var(--font-sans); min-height: 100vh; }
|
|
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="root"></div>
|
|
<script type="module" src="/src/main.jsx"></script>
|
|
</body>
|
|
</html>
|