Files
FTCWebsite/templates/admin/base.html
abhiramtx befc3160be Saved your changes before starting work
Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 5e584ab0-c340-4432-97ef-1972582b60e9
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 6d4dbe7c-69e4-4510-bd62-638ff9c78d5c
2025-11-08 22:13:45 +00:00

169 lines
4.9 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}Admin Panel{% endblock %} - Technical Turbulence</title>
<style>
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
background: #000;
color: #fff;
line-height: 1.5;
}
.admin-container {
display: flex;
min-height: 100vh;
}
.admin-sidebar {
width: 250px;
background: #1a1a1a;
border-right: 1px solid #333;
position: fixed;
top: 0;
left: 0;
height: 100vh;
overflow-y: auto;
z-index: 1000;
display: flex;
flex-direction: column;
}
.admin-logo {
font-size: 18px;
font-weight: 700;
color: #fff;
text-align: center;
padding: 32px 24px;
border-bottom: 1px solid #333;
}
.admin-nav {
flex: 1;
padding: 24px 16px;
}
.admin-nav a {
display: block;
padding: 12px 16px;
margin-bottom: 4px;
color: #999;
text-decoration: none;
border-radius: 6px;
font-size: 14px;
transition: all 0.15s ease;
}
.admin-nav a:hover {
background: #252525;
color: #fff;
}
.admin-nav a.active {
background: #3b82f6;
color: #fff;
}
.admin-logout {
padding: 16px;
border-top: 1px solid #333;
}
.admin-logout a {
display: block;
padding: 12px 16px;
background: rgba(239, 68, 68, 0.1);
border: 1px solid rgba(239, 68, 68, 0.2);
color: #ef4444;
text-decoration: none;
border-radius: 6px;
text-align: center;
font-size: 14px;
transition: all 0.15s ease;
}
.admin-logout a:hover {
background: rgba(239, 68, 68, 0.2);
}
.admin-content {
margin-left: 250px;
flex: 1;
padding: 40px;
min-height: 100vh;
}
.admin-header {
font-size: 32px;
font-weight: 700;
color: #fff;
margin-bottom: 32px;
}
.flash-message {
padding: 12px 16px;
border-radius: 8px;
margin-bottom: 24px;
font-size: 14px;
}
.flash-message.success {
background: rgba(34, 197, 94, 0.1);
border: 1px solid rgba(34, 197, 94, 0.3);
color: #22c55e;
}
.flash-message.error {
background: rgba(239, 68, 68, 0.1);
border: 1px solid rgba(239, 68, 68, 0.3);
color: #ef4444;
}
@media (max-width: 768px) {
.admin-sidebar {
width: 200px;
}
.admin-content {
margin-left: 200px;
padding: 24px;
}
}
</style>
{% block extra_styles %}{% endblock %}
</head>
<body>
<div class="admin-container">
<div class="admin-sidebar">
<div class="admin-logo">Admin Panel</div>
<nav class="admin-nav">
<a href="{{ url_for('admin_stats') }}" class="{% if request.endpoint == 'admin_stats' %}active{% endif %}">Stats</a>
<a href="{{ url_for('admin_members') }}" class="{% if request.endpoint == 'admin_members' %}active{% endif %}">Members/Mentors</a>
<a href="{{ url_for('admin_competitions') }}" class="{% if request.endpoint == 'admin_competitions' %}active{% endif %}">Competitions</a>
<a href="{{ url_for('admin_sponsors') }}" class="{% if request.endpoint == 'admin_sponsors' %}active{% endif %}">Sponsors</a>
</nav>
<div class="admin-logout">
<a href="{{ url_for('admin_logout') }}">Logout</a>
</div>
</div>
<div class="admin-content">
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="flash-message {{ category }}">{{ message }}</div>
{% endfor %}
{% endif %}
{% endwith %}
{% block content %}{% endblock %}
</div>
</div>
</body>
</html>