Spaces:
No application file
No application file
<html lang="ru"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>{% block title %}Emotion Analyzer{% endblock %}</title> | |
<link rel="stylesheet" href="{{ url_for('static', filename='styles.css') }}"> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"> | |
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"> | |
<!-- Bootstrap JS (для работы закрытия) --> | |
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> | |
</head> | |
<body> | |
<div class="app-container"> | |
<!-- Боковая панель --> | |
<div class="app-sidebar"> | |
<div class="sidebar-header"> | |
<a href="{{ url_for('welcome') }}" class="logo-link"> | |
<h2><i class="fas fa-brain"></i> EmotionAnalyzer</h2> | |
</a> | |
</div> | |
<div class="sidebar-nav"> | |
<a href="{{ url_for('index') }}" class="nav-item"> | |
<i class="fas fa-home"></i> Главная | |
</a> | |
{% if current_user.is_authenticated %} | |
<a href="{{ url_for('profile.profile') }}" class="nav-item"> | |
<i class="fas fa-user"></i> Профиль | |
</a> | |
{% if current_user.is_authenticated and current_user.is_admin %} | |
<a href="{{ url_for('admin_bp.dashboard') }}" class="nav-item"> | |
<i class="fas fa-lock"></i> Админ-панель | |
</a> | |
{% endif %} | |
{% endif %} | |
</div> | |
<div class="sidebar-footer"> | |
{% if current_user.is_authenticated %} | |
<div class="user-info"> | |
<i class="fas fa-user-circle"></i> | |
<span>{{ current_user.username }}</span> | |
</div> | |
<a href="{{ url_for('auth_bp.logout') }}" class="logout-btn"> | |
<i class="fas fa-sign-out-alt"></i> Выйти | |
</a> | |
{% else %} | |
<div class="auth-links"> | |
<a href="{{ url_for('auth_bp.login') }}" class="auth-link">Войти</a> | |
<a href="{{ url_for('auth_bp.register') }}" class="auth-link">Регистрация</a> | |
</div> | |
{% endif %} | |
</div> | |
</div> | |
<!-- Основное содержимое --> | |
<div class="app-main"> | |
{% with messages = get_flashed_messages(with_categories=true) %} | |
{% if messages %} | |
<div class="flash-messages"> | |
{% for category, message in messages %} | |
<div class="flash-message flash-{{ category }} enhanced-alert"> | |
<div class="alert-icon"> | |
{% if category == 'error' %} | |
<i class="fas fa-exclamation-circle"></i> | |
{% elif category == 'success' %} | |
<i class="fas fa-check-circle"></i> | |
{% else %} | |
<i class="fas fa-info-circle"></i> | |
{% endif %} | |
</div> | |
<div class="alert-text">{{ message }}</div> | |
<button class="flash-close " onclick="this.parentElement.remove()"><i class="fas fa-times"></i></button> | |
</div> | |
{% endfor %} | |
</div> | |
{% endif %} | |
{% endwith %} | |
{% block content %}{% endblock %} | |
</div> | |
</div> | |
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> | |
<script src="{{ url_for('static', filename='script.js') }}"></script> | |
<script> | |
document.querySelector('.mobile-menu-toggle').addEventListener('click', () => { | |
document.querySelector('.app-container').classList.toggle('sidebar-open'); | |
}); | |
</script> | |
{% block scripts %}{% endblock %} | |
</body> | |
</html> |