|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Choose Your Dashboard</title> |
|
|
<style> |
|
|
* { |
|
|
margin: 0; |
|
|
padding: 0; |
|
|
box-sizing: border-box; |
|
|
} |
|
|
|
|
|
body { |
|
|
font-family: 'Inter', -apple-system, sans-serif; |
|
|
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); |
|
|
min-height: 100vh; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
padding: 20px; |
|
|
} |
|
|
|
|
|
.container { |
|
|
max-width: 1200px; |
|
|
width: 100%; |
|
|
} |
|
|
|
|
|
h1 { |
|
|
text-align: center; |
|
|
color: white; |
|
|
font-size: 3rem; |
|
|
margin-bottom: 1rem; |
|
|
text-shadow: 0 2px 10px rgba(0,0,0,0.2); |
|
|
} |
|
|
|
|
|
.subtitle { |
|
|
text-align: center; |
|
|
color: rgba(255,255,255,0.9); |
|
|
font-size: 1.2rem; |
|
|
margin-bottom: 3rem; |
|
|
} |
|
|
|
|
|
.cards { |
|
|
display: grid; |
|
|
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); |
|
|
gap: 2rem; |
|
|
margin-bottom: 2rem; |
|
|
} |
|
|
|
|
|
.card { |
|
|
background: white; |
|
|
border-radius: 20px; |
|
|
padding: 2rem; |
|
|
box-shadow: 0 20px 60px rgba(0,0,0,0.3); |
|
|
transition: transform 0.3s ease, box-shadow 0.3s ease; |
|
|
cursor: pointer; |
|
|
text-decoration: none; |
|
|
color: inherit; |
|
|
display: block; |
|
|
} |
|
|
|
|
|
.card:hover { |
|
|
transform: translateY(-10px); |
|
|
box-shadow: 0 30px 80px rgba(0,0,0,0.4); |
|
|
} |
|
|
|
|
|
.card-header { |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: space-between; |
|
|
margin-bottom: 1.5rem; |
|
|
} |
|
|
|
|
|
.card-icon { |
|
|
width: 60px; |
|
|
height: 60px; |
|
|
background: linear-gradient(135deg, #667eea, #764ba2); |
|
|
border-radius: 15px; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
justify-content: center; |
|
|
font-size: 2rem; |
|
|
} |
|
|
|
|
|
.badge { |
|
|
padding: 0.5rem 1rem; |
|
|
border-radius: 20px; |
|
|
font-size: 0.75rem; |
|
|
font-weight: bold; |
|
|
text-transform: uppercase; |
|
|
letter-spacing: 0.5px; |
|
|
} |
|
|
|
|
|
.badge.new { |
|
|
background: linear-gradient(135deg, #11998e, #38ef7d); |
|
|
color: white; |
|
|
} |
|
|
|
|
|
.badge.legacy { |
|
|
background: #f3f4f6; |
|
|
color: #6b7280; |
|
|
} |
|
|
|
|
|
.card h2 { |
|
|
font-size: 1.75rem; |
|
|
margin-bottom: 1rem; |
|
|
color: #1f2937; |
|
|
} |
|
|
|
|
|
.card p { |
|
|
color: #6b7280; |
|
|
line-height: 1.6; |
|
|
margin-bottom: 1.5rem; |
|
|
} |
|
|
|
|
|
.features { |
|
|
list-style: none; |
|
|
margin-bottom: 1.5rem; |
|
|
} |
|
|
|
|
|
.features li { |
|
|
padding: 0.5rem 0; |
|
|
color: #374151; |
|
|
display: flex; |
|
|
align-items: center; |
|
|
gap: 0.5rem; |
|
|
} |
|
|
|
|
|
.features li::before { |
|
|
content: 'β'; |
|
|
color: #10b981; |
|
|
font-weight: bold; |
|
|
font-size: 1.2rem; |
|
|
} |
|
|
|
|
|
.features li.unavailable::before { |
|
|
content: 'β'; |
|
|
color: #ef4444; |
|
|
} |
|
|
|
|
|
.btn { |
|
|
width: 100%; |
|
|
padding: 1rem; |
|
|
border-radius: 10px; |
|
|
border: none; |
|
|
font-size: 1rem; |
|
|
font-weight: 600; |
|
|
cursor: pointer; |
|
|
transition: all 0.3s ease; |
|
|
text-align: center; |
|
|
text-decoration: none; |
|
|
display: block; |
|
|
} |
|
|
|
|
|
.btn-primary { |
|
|
background: linear-gradient(135deg, #667eea, #764ba2); |
|
|
color: white; |
|
|
box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4); |
|
|
} |
|
|
|
|
|
.btn-primary:hover { |
|
|
transform: scale(1.02); |
|
|
box-shadow: 0 6px 20px rgba(102, 126, 234, 0.5); |
|
|
} |
|
|
|
|
|
.btn-secondary { |
|
|
background: #f3f4f6; |
|
|
color: #374151; |
|
|
} |
|
|
|
|
|
.btn-secondary:hover { |
|
|
background: #e5e7eb; |
|
|
} |
|
|
|
|
|
.docs-link { |
|
|
text-align: center; |
|
|
margin-top: 2rem; |
|
|
} |
|
|
|
|
|
.docs-link a { |
|
|
color: white; |
|
|
text-decoration: none; |
|
|
font-size: 1.1rem; |
|
|
padding: 1rem 2rem; |
|
|
background: rgba(255,255,255,0.2); |
|
|
border-radius: 10px; |
|
|
backdrop-filter: blur(10px); |
|
|
transition: all 0.3s ease; |
|
|
display: inline-block; |
|
|
} |
|
|
|
|
|
.docs-link a:hover { |
|
|
background: rgba(255,255,255,0.3); |
|
|
transform: translateY(-2px); |
|
|
} |
|
|
|
|
|
@media (max-width: 768px) { |
|
|
h1 { |
|
|
font-size: 2rem; |
|
|
} |
|
|
|
|
|
.subtitle { |
|
|
font-size: 1rem; |
|
|
} |
|
|
|
|
|
.cards { |
|
|
grid-template-columns: 1fr; |
|
|
} |
|
|
} |
|
|
</style> |
|
|
|
|
|
<script src="/static/js/api-config.js"></script> |
|
|
<script> |
|
|
|
|
|
window.apiReady = new Promise((resolve) => { |
|
|
if (window.apiClient) { |
|
|
console.log('β
API Client ready'); |
|
|
resolve(window.apiClient); |
|
|
} else { |
|
|
console.error('β API Client not loaded'); |
|
|
} |
|
|
}); |
|
|
</script> |
|
|
|
|
|
</head> |
|
|
<body> |
|
|
<div class="container"> |
|
|
<h1>π Choose Your Dashboard</h1> |
|
|
<p class="subtitle">Select the version that best fits your needs</p> |
|
|
|
|
|
<div class="cards"> |
|
|
|
|
|
<a href="/static/pages/dashboard/index-modern.html" class="card"> |
|
|
<div class="card-header"> |
|
|
<div class="card-icon">β¨</div> |
|
|
<span class="badge new">Recommended</span> |
|
|
</div> |
|
|
|
|
|
<h2>Modern Dashboard</h2> |
|
|
<p>Completely redesigned with 40+ integrated data sources and modern UI/UX</p> |
|
|
|
|
|
<ul class="features"> |
|
|
<li>40+ API sources with auto-fallback</li> |
|
|
<li>Modern responsive design</li> |
|
|
<li>Dark mode support</li> |
|
|
<li>Collapsible sidebar (280px β 72px)</li> |
|
|
<li>Real-time price widgets</li> |
|
|
<li>News aggregation (12+ sources)</li> |
|
|
<li>Fear & Greed index (10+ sources)</li> |
|
|
<li>99%+ uptime with fallbacks</li> |
|
|
<li>Zero import errors</li> |
|
|
<li>Mobile-optimized</li> |
|
|
</ul> |
|
|
|
|
|
<button class="btn btn-primary">Open Modern Dashboard β</button> |
|
|
</a> |
|
|
|
|
|
|
|
|
<a href="/static/pages/dashboard/index.html" class="card"> |
|
|
<div class="card-header"> |
|
|
<div class="card-icon">π</div> |
|
|
<span class="badge legacy">Legacy</span> |
|
|
</div> |
|
|
|
|
|
<h2>Classic Dashboard</h2> |
|
|
<p>Original dashboard (now with fixed imports)</p> |
|
|
|
|
|
<ul class="features"> |
|
|
<li>Basic API integration</li> |
|
|
<li>Original design</li> |
|
|
<li class="unavailable">Limited fallback options</li> |
|
|
<li class="unavailable">No dark mode</li> |
|
|
<li class="unavailable">Fixed sidebar</li> |
|
|
<li class="unavailable">Fewer data sources</li> |
|
|
<li class="unavailable">Manual error handling</li> |
|
|
<li>Recently fixed import errors</li> |
|
|
<li>Familiar interface</li> |
|
|
</ul> |
|
|
|
|
|
<button class="btn btn-secondary">Open Classic Dashboard β</button> |
|
|
</a> |
|
|
</div> |
|
|
|
|
|
<div class="docs-link"> |
|
|
<a href="/MIGRATION_GUIDE.md" target="_blank">π View Migration Guide</a> |
|
|
<a href="/MODERN_UI_UX_GUIDE.md" target="_blank">π Full Documentation</a> |
|
|
</div> |
|
|
|
|
|
<div style="text-align: center; margin-top: 3rem; color: rgba(255,255,255,0.8);"> |
|
|
<p><strong>Issues Fixed:</strong></p> |
|
|
<p>β
Missing config.js export</p> |
|
|
<p>β
Import errors resolved</p> |
|
|
<p>β
40+ API sources integrated</p> |
|
|
<p>β
Automatic fallback chains</p> |
|
|
<p style="margin-top: 1rem; font-size: 0.9rem;"> |
|
|
<strong>Recommendation:</strong> Use the Modern Dashboard for best experience |
|
|
</p> |
|
|
</div> |
|
|
</div> |
|
|
</body> |
|
|
</html> |
|
|
|
|
|
|