142 lines
7.7 KiB
HTML
142 lines
7.7 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>{% if is_public %}Профиль {{ profile_user.username }}{% else %}Профиль{% endif %} — CS2 Simulator</title>
|
||
<link rel="stylesheet" href="/static/css/style.css">
|
||
</head>
|
||
<body>
|
||
<nav class="navbar">
|
||
<div class="container">
|
||
<a href="/" class="logo">CS2 <span>Simulator</span></a>
|
||
<button class="mobile-toggle" id="mobileToggle">☰</button>
|
||
<div class="nav-links" id="navLinks">
|
||
{% if user %}
|
||
<a href="/cases" class="nav-link">Кейсы</a>
|
||
<a href="/contracts" class="nav-link">Контракты</a>
|
||
<a href="/upgrade" class="nav-link">Апгрейд</a>
|
||
<a href="/crash" class="nav-link">Crash</a>
|
||
<a href="/inventory" class="nav-link">Инвентарь</a>
|
||
<a href="/activity" class="nav-link">Лента</a>
|
||
<a href="/achievements" class="nav-link">Достижения</a>
|
||
<a href="/profile" class="nav-link active">Профиль</a>
|
||
<span class="user-balance">{{ "%.2f"|format(user.balance) }} ₽</span>
|
||
<button onclick="toggleSafeMode()" class="btn btn-ghost" id="safeModeToggle" title="Режим записи">🎙️</button>
|
||
<button onclick="logout()" class="btn btn-ghost">Выйти</button>
|
||
{% else %}
|
||
<a href="/cases" class="nav-link">Кейсы</a>
|
||
<a href="/contracts" class="nav-link">Контракты</a>
|
||
<a href="/upgrade" class="nav-link">Апгрейд</a>
|
||
<a href="/activity" class="nav-link">Лента</a>
|
||
<button onclick="toggleSafeMode()" class="btn btn-ghost" id="safeModeToggle" title="Режим записи">🎙️</button>
|
||
<a href="/login" class="btn btn-outline">Войти</a>
|
||
<a href="/register" class="btn btn-primary">Регистрация</a>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<main class="section">
|
||
<div class="container">
|
||
<div class="section-header">
|
||
<div>
|
||
<h1 class="section-title">{% if is_public %}👤 {{ profile_user.username }}{% else %}👤 {{ user.username }}{% endif %}</h1>
|
||
{% if is_public %}
|
||
<p class="section-subtitle">Зарегистрирован {{ profile_user.created_at.strftime('%d.%m.%Y') }}</p>
|
||
{% else %}
|
||
<p class="section-subtitle">Добро пожаловать в ваш профиль</p>
|
||
{% endif %}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="stats-grid">
|
||
<div class="stat-card">
|
||
<div class="stat-value">{{ total_items }}</div>
|
||
<div class="stat-label">Предметов</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="stat-value">{{ cases_opened }}</div>
|
||
<div class="stat-label">Открыто кейсов</div>
|
||
</div>
|
||
<div class="stat-card">
|
||
<div class="stat-value">{{ contracts_completed }}</div>
|
||
<div class="stat-label">Контрактов</div>
|
||
</div>
|
||
{% if not is_public %}
|
||
<div class="stat-card">
|
||
<div class="stat-value">{{ "%.2f"|format(user.balance) }} ₽</div>
|
||
<div class="stat-label">Баланс</div>
|
||
</div>
|
||
{% endif %}
|
||
</div>
|
||
|
||
<div style="margin-top:2rem;display:grid;gap:1.5rem;">
|
||
<div class="section">
|
||
<h2 class="display-font" style="font-size:1rem;margin-bottom:0.75rem;">🏆 Ценные предметы</h2>
|
||
<div class="grid grid-auto-sm">
|
||
{% set target_items = valuable_items %}
|
||
{% for item in target_items %}
|
||
<div class="card" style="text-align:center;padding:0.75rem;">
|
||
<div class="display-font text-sm">{{ item.market_hash_name }}</div>
|
||
<div class="text-xs text-dim">
|
||
<span>{{ item.rarity }}</span>
|
||
<span>Float: {{ "%.4f"|format(item.float_value) }}</span>
|
||
</div>
|
||
</div>
|
||
{% else %}
|
||
<p class="text-dim text-sm">У {% if is_public %}этого пользователя{% else %}вас{% endif %} пока нет предметов.</p>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2 class="display-font" style="font-size:1rem;margin-bottom:0.75rem;">📦 Последние открытия</h2>
|
||
<div style="display:flex;flex-direction:column;gap:0.35rem;">
|
||
{% for opening in recent_openings %}
|
||
<div class="card" style="padding:0.65rem 1rem;display:flex;align-items:center;gap:0.75rem;">
|
||
<span style="font-size:1.2rem;">📦</span>
|
||
<div style="flex:1;min-width:0;">
|
||
<div class="text-sm truncate">{{ opening.item_name }}</div>
|
||
<div class="text-xs text-dim">
|
||
<span>{{ opening.rarity }}</span>
|
||
<span>Float: {{ "%.4f"|format(opening.float_value) }}</span>
|
||
<span>{{ opening.opened_at.strftime('%d.%m.%Y %H:%M') }}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{% else %}
|
||
<p class="text-dim text-sm">Пока нет открытий</p>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
|
||
<div class="section">
|
||
<h2 class="display-font" style="font-size:1rem;margin-bottom:0.75rem;">🔄 Последние контракты</h2>
|
||
<div style="display:flex;flex-direction:column;gap:0.35rem;">
|
||
{% for contract in recent_contracts %}
|
||
<div class="card" style="padding:0.65rem 1rem;display:flex;align-items:center;gap:0.75rem;">
|
||
<span style="font-size:1.2rem;">🔄</span>
|
||
<div style="flex:1;min-width:0;">
|
||
<div class="text-sm truncate">{{ contract.output_item_name }}</div>
|
||
<div class="text-xs text-dim">
|
||
<span>Float: {{ "%.4f"|format(contract.output_float) }}</span>
|
||
<span>Шанс: {{ "%.2f"|format(contract.probability) }}%</span>
|
||
<span>{{ contract.created_at.strftime('%d.%m.%Y %H:%M') }}</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
{% else %}
|
||
<p class="text-dim text-sm">Пока нет контрактов</p>
|
||
{% endfor %}
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</main>
|
||
|
||
<script src="/static/js/safemode.js"></script>
|
||
{% if user and not is_public %}{% include '_activity_sidebar.html' %}{% endif %}
|
||
</body>
|
||
</html>
|