Showing
4 changed files
with
46 additions
and
1 deletions
| ... | @@ -1194,6 +1194,24 @@ | ... | @@ -1194,6 +1194,24 @@ |
| 1194 | </div> | 1194 | </div> |
| 1195 | </div> | 1195 | </div> |
| 1196 | 1196 | ||
| 1197 | + <!-- Links directos --> | ||
| 1198 | + <div class="quick-links"> | ||
| 1199 | + <a href="/vista-diaria" class="quick-link quick-link-diaria"> | ||
| 1200 | + <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"> | ||
| 1201 | + <polyline points="3 12 7 12 9 6 12 18 15 9 17 12 21 12"/> | ||
| 1202 | + </svg> | ||
| 1203 | + Ver ejecución diaria | ||
| 1204 | + <span class="quick-link-arrow">→</span> | ||
| 1205 | + </a> | ||
| 1206 | + <a href="/descargas" class="quick-link quick-link-descargas"> | ||
| 1207 | + <svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"> | ||
| 1208 | + <path d="M12 4v12"/><polyline points="8 12 12 16 16 12"/><path d="M4 18h16"/> | ||
| 1209 | + </svg> | ||
| 1210 | + Descarga bases de datos | ||
| 1211 | + <span class="quick-link-arrow">→</span> | ||
| 1212 | + </a> | ||
| 1213 | + </div> | ||
| 1214 | + | ||
| 1197 | </div> | 1215 | </div> |
| 1198 | 1216 | ||
| 1199 | <!-- Contenedor de resultados (overlay absoluto) --> | 1217 | <!-- Contenedor de resultados (overlay absoluto) --> |
| ... | @@ -1531,6 +1549,7 @@ | ... | @@ -1531,6 +1549,7 @@ |
| 1531 | 1549 | ||
| 1532 | <!-- Scroll hint --> | 1550 | <!-- Scroll hint --> |
| 1533 | 1551 | ||
| 1552 | + | ||
| 1534 | </main> | 1553 | </main> |
| 1535 | 1554 | ||
| 1536 | <!-- Secciones removidas - el landing es solo el buscador --> | 1555 | <!-- Secciones removidas - el landing es solo el buscador --> |
| ... | @@ -2801,6 +2820,23 @@ | ... | @@ -2801,6 +2820,23 @@ |
| 2801 | :global(html:not(.dark)) .footer-org{color:#999} | 2820 | :global(html:not(.dark)) .footer-org{color:#999} |
| 2802 | :global(html:not(.dark)) .footer-right{color:#999} | 2821 | :global(html:not(.dark)) .footer-right{color:#999} |
| 2803 | 2822 | ||
| 2823 | + /* ── Quick links (debajo de mode cards) ── */ | ||
| 2824 | + /* ── Quick links (debajo de mode cards) ── */ | ||
| 2825 | + .quick-links{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px} | ||
| 2826 | + .quick-link{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:16px;font-weight:600;letter-spacing:-0.01em;text-decoration:none;padding:14px 16px;border-radius:12px;transition:all 0.25s ease} | ||
| 2827 | + .page a.quick-link-diaria{color:#C2EDD9;background:rgba(74,139,110,0.18);border:none} | ||
| 2828 | + .page a.quick-link-diaria:hover{color:#E0F5EC;background:rgba(74,139,110,0.28)} | ||
| 2829 | + .page a.quick-link-descargas{color:#F5E6A8;background:rgba(201,167,81,0.18);border:none} | ||
| 2830 | + .page a.quick-link-descargas:hover{color:#FBF2D0;background:rgba(201,167,81,0.28)} | ||
| 2831 | + .quick-link svg{opacity:0.8;transition:opacity 0.25s;flex-shrink:0} | ||
| 2832 | + .quick-link:hover svg{opacity:1} | ||
| 2833 | + .quick-link-arrow{margin-left:auto;opacity:0.4;transition:all 0.25s;transform:translateX(-4px)} | ||
| 2834 | + .quick-link:hover .quick-link-arrow{opacity:0.8;transform:translateX(0)} | ||
| 2835 | + :global(html:not(.dark)) .page a.quick-link-diaria{color:#3A7A5E;background:rgba(74,139,110,0.14)} | ||
| 2836 | + :global(html:not(.dark)) .page a.quick-link-diaria:hover{color:#2D6B4F;background:rgba(74,139,110,0.22)} | ||
| 2837 | + :global(html:not(.dark)) .page a.quick-link-descargas{color:#8A7030;background:rgba(201,167,81,0.14)} | ||
| 2838 | + :global(html:not(.dark)) .page a.quick-link-descargas:hover{color:#7A6228;background:rgba(201,167,81,0.22)} | ||
| 2839 | + | ||
| 2804 | /* ══════════════════════════════════════════════════════════════════════════ | 2840 | /* ══════════════════════════════════════════════════════════════════════════ |
| 2805 | RESPONSIVE - TABLET (768px) | 2841 | RESPONSIVE - TABLET (768px) |
| 2806 | ══════════════════════════════════════════════════════════════════════════ */ | 2842 | ══════════════════════════════════════════════════════════════════════════ */ |
| ... | @@ -2808,6 +2844,7 @@ | ... | @@ -2808,6 +2844,7 @@ |
| 2808 | .page{scroll-snap-type:y proximity} | 2844 | .page{scroll-snap-type:y proximity} |
| 2809 | main[data-section="hero"]{height:auto;min-height:100vh} | 2845 | main[data-section="hero"]{height:auto;min-height:100vh} |
| 2810 | main[data-section="hero"],.landing-screen,.directory,.clasificadores,.historias,.visualizaciones,.manifiesto,.descargas{scroll-snap-stop:normal} | 2846 | main[data-section="hero"],.landing-screen,.directory,.clasificadores,.historias,.visualizaciones,.manifiesto,.descargas{scroll-snap-stop:normal} |
| 2847 | + .quick-links{grid-template-columns:1fr} | ||
| 2811 | 2848 | ||
| 2812 | /* Section dots - bottom horizontal bar */ | 2849 | /* Section dots - bottom horizontal bar */ |
| 2813 | .section-dots{position:fixed;right:auto;left:50%;top:auto;bottom:20px;transform:translateX(-50%);flex-direction:row;gap:10px;padding:12px 20px;border-radius:24px;background:rgba(28,28,26,0.7);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);z-index:1000} | 2850 | .section-dots{position:fixed;right:auto;left:50%;top:auto;bottom:20px;transform:translateX(-50%);flex-direction:row;gap:10px;padding:12px 20px;border-radius:24px;background:rgba(28,28,26,0.7);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,0.1);z-index:1000} | ... | ... |
| ... | @@ -11,13 +11,21 @@ export async function GET({ url }) { | ... | @@ -11,13 +11,21 @@ export async function GET({ url }) { |
| 11 | timeline: `${API_BASE}/timeline` | 11 | timeline: `${API_BASE}/timeline` |
| 12 | }; | 12 | }; |
| 13 | 13 | ||
| 14 | - const apiUrl = endpoints[tipo]; | 14 | + let apiUrl = endpoints[tipo]; |
| 15 | if (!apiUrl) { | 15 | if (!apiUrl) { |
| 16 | return new Response(JSON.stringify({ error: 'Invalid tipo' }), { | 16 | return new Response(JSON.stringify({ error: 'Invalid tipo' }), { |
| 17 | status: 400, headers: { 'Content-Type': 'application/json' } | 17 | status: 400, headers: { 'Content-Type': 'application/json' } |
| 18 | }); | 18 | }); |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | + // Pasar parámetros adicionales | ||
| 22 | + const params = new URLSearchParams(); | ||
| 23 | + const entidad = url.searchParams.get('entidad'); | ||
| 24 | + const dias = url.searchParams.get('dias'); | ||
| 25 | + if (entidad) params.set('entidad', entidad); | ||
| 26 | + if (dias) params.set('dias', dias); | ||
| 27 | + if (params.toString()) apiUrl += `?${params.toString()}`; | ||
| 28 | + | ||
| 21 | try { | 29 | try { |
| 22 | const response = await fetch(apiUrl); | 30 | const response = await fetch(apiUrl); |
| 23 | if (!response.ok) { | 31 | if (!response.ok) { | ... | ... |
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
-
Please register or login to post a comment