You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
3.2 KiB
87 lines
3.2 KiB
<!doctype html> |
|
<html lang="ru"> |
|
<head> |
|
<meta charset="utf-8" /> |
|
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" /> |
|
<title>{% block title %}Тестирование персонала{% endblock %}</title> |
|
|
|
{# Tailwind CDN — на E1.0 этого достаточно. В Этапе 2/CI можно заменить на сборку. #} |
|
<script src="https://cdn.tailwindcss.com"></script> |
|
<script> |
|
// Палитра/типографика в стиле webapp-nginx (cabinet-theme). |
|
tailwind.config = { |
|
theme: { |
|
extend: { |
|
fontFamily: { |
|
sans: ['Manrope', 'Inter', 'system-ui', 'sans-serif'], |
|
}, |
|
colors: { |
|
brand: { |
|
50: '#ecf7f6', |
|
100: '#d9efec', |
|
300: '#9bd7d0', |
|
500: '#007168', |
|
600: '#00645b', |
|
700: '#00574f', |
|
}, |
|
ink: { |
|
900: '#0d1b1d', |
|
700: '#3d5357', |
|
500: '#506965', |
|
300: '#b9bc94', |
|
100: '#f3f8f9', |
|
}, |
|
}, |
|
}, |
|
}, |
|
}; |
|
</script> |
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" /> |
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> |
|
<link |
|
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Manrope:wght@600;700;800&display=swap" |
|
rel="stylesheet" |
|
/> |
|
<link |
|
rel="stylesheet" |
|
href="https://fonts.googleapis.com/icon?family=Material+Symbols+Outlined" |
|
/> |
|
|
|
<link rel="stylesheet" href="{{ url_for('static', filename='css/app.css') }}" /> |
|
{% block head %}{% endblock %} |
|
</head> |
|
<body class="min-h-screen bg-ink-100 text-ink-900 font-sans antialiased ui-legacy"> |
|
<div class="cabinet-app"> |
|
<header class="cabinet-header"> |
|
<div class="cabinet-header__inner"> |
|
<a href="{{ url_for('tests.tests_list_page') }}" class="cabinet-brand"> |
|
<img src="{{ url_for('static', filename='img/clinic-logo.png') }}" |
|
alt="Логотип клиники" class="cabinet-brand__logo" /> |
|
<div> |
|
<div class="cabinet-brand__title">Тестирование</div> |
|
</div> |
|
</a> |
|
<div class="cabinet-header__actions"> |
|
{% if current_user %} |
|
<span class="cabinet-user" title="{{ (current_user.full_name or current_user.login) ~ (' · ' ~ format_role(current_user.role) if format_role(current_user.role) else '') }}"> |
|
{{ format_name_short(current_user.full_name, current_user.login) }} |
|
{% if format_role(current_user.role) %}<span class="cabinet-user__role"> · {{ format_role(current_user.role) }}</span>{% endif %} |
|
</span> |
|
<form method="post" action="{{ url_for('auth.logout') }}" class="inline"> |
|
<button type="submit" class="btn btn-ghost">Выйти</button> |
|
</form> |
|
{% else %} |
|
<a href="{{ url_for('auth.login_page') }}" class="btn btn-ghost">Войти</a> |
|
{% endif %} |
|
</div> |
|
</div> |
|
</header> |
|
<main class="cabinet-main"> |
|
{% block content scoped %}{% endblock %} |
|
</main> |
|
</div> |
|
|
|
{% block scripts %}{% endblock %} |
|
</body> |
|
</html>
|
|
|