Files
SkinsPins/app/templates/nav.html
T
Rolf 3a1da1482c Add full SkinsPins application
- FastAPI + SQLite + Alpine.js + HTMX PWA for Bingo Bango Bongo golf scoring
- Passwordless magic link auth with email (aiosmtplib) and admin invite system
- Real-time score entry via WebSocket with drag-and-drop player ordering
- Course management with per-hole par and stroke index
- Scorecard with golf score markers (birdie, eagle, bogey, etc.)
- Two-step new game form with tee selection per player
- Dashboard with stats, live games social stream, and recent game history
- Game summary view (read-only scorecard with leaderboard)
- User profile pages with win stats
- PWA install support with generated PNG icons
- Admin panel for users, courses, games, and invitations

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 10:16:46 +01:00

49 lines
2.0 KiB
HTML

{% set path = request.url.path %}
<nav class="bottom-nav">
<a href="/" class="nav-item {% if path == '/' %}active{% endif %}">
<span class="nav-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M3 9.5L12 3l9 6.5V20a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V9.5z"/>
<path d="M9 21V12h6v9"/>
</svg>
</span>
<span>Home</span>
</a>
<a href="/games" class="nav-item {% if path.startswith('/games') %}active{% endif %}">
<span class="nav-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<line x1="12" y1="3" x2="12" y2="21"/>
<path d="M12 3l7 5-7 5"/>
<ellipse cx="12" cy="20" rx="4" ry="1.5"/>
</svg>
</span>
<span>Games</span>
</a>
{% if user.email == admin_email %}
<a href="/admin" class="nav-item {% if path.startswith('/admin') %}active{% endif %}">
<span class="nav-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="12" r="3"/>
<path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/>
</svg>
</span>
<span>Admin</span>
</a>
{% endif %}
<a href="/profile" class="nav-item {% if path == '/profile' %}active{% endif %}">
<span class="nav-icon nav-avatar">
{% if user.avatar and user.avatar.startswith('/') %}
<img src="{{ user.avatar }}" alt="avatar" class="nav-avatar-img">
{% elif user.avatar %}
{{ user.avatar }}
{% else %}
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<circle cx="12" cy="8" r="4"/>
<path d="M4 20c0-4 3.6-7 8-7s8 3 8 7"/>
</svg>
{% endif %}
</span>
<span>Profile</span>
</a>
</nav>