111 lines
5.6 KiB
HTML
111 lines
5.6 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Справка по системе</title>
|
||
<link rel="stylesheet" href="style.css">
|
||
<style>
|
||
.help-container {
|
||
max-width: 1000px;
|
||
margin: 2rem auto;
|
||
padding: 0 1rem;
|
||
}
|
||
.card {
|
||
background: white;
|
||
border-radius: 1rem;
|
||
padding: 1.5rem;
|
||
margin-bottom: 1.5rem;
|
||
box-shadow: 0 2px 8px rgba(0,0,0,0.05);
|
||
}
|
||
.card h2 {
|
||
margin-top: 0;
|
||
color: #1e3a8a;
|
||
}
|
||
.card a {
|
||
color: #1e3a8a;
|
||
text-decoration: none;
|
||
font-weight: bold;
|
||
}
|
||
.card a:hover {
|
||
text-decoration: underline;
|
||
}
|
||
.badge {
|
||
display: inline-block;
|
||
background: #e2e8f0;
|
||
padding: 0.2rem 0.6rem;
|
||
border-radius: 1rem;
|
||
font-size: 0.8rem;
|
||
margin-left: 0.5rem;
|
||
}
|
||
.note {
|
||
background: #fef9c3;
|
||
padding: 1rem;
|
||
border-radius: 0.8rem;
|
||
margin-top: 1rem;
|
||
}
|
||
footer {
|
||
text-align: center;
|
||
margin-top: 2rem;
|
||
color: #64748b;
|
||
}
|
||
</style>
|
||
</head>
|
||
<body>
|
||
<header>
|
||
<h1>Справка по системе</h1>
|
||
<div id="userInfo"></div>
|
||
<button id="logoutBtn" style="display:none;">Выйти</button>
|
||
</header>
|
||
<main class="help-container">
|
||
<div class="card">
|
||
<h2>📅 Запись на открытые уроки <span class="badge">доступ всем</span></h2>
|
||
<p><strong>Ссылка:</strong> <a href="/" target="_blank">/</a> (главная страница)</p>
|
||
<p>Родители могут просматривать доступные уроки, фильтровать их по классу, учителю или теме, и записываться, указав свои ФИО и телефон. После записи количество свободных мест уменьшается.</p>
|
||
<p>Уроки, на которых нет свободных мест, не отображаются.</p>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>🔐 Панель администратора <span class="badge">только admin</span></h2>
|
||
<p><strong>Ссылка:</strong> <a href="/admin" target="_blank">/admin</a></p>
|
||
<p>Доступна после авторизации с правами администратора (локальный пользователь или группа из <code>Администраторов</code>).</p>
|
||
<ul>
|
||
<li>➕ Добавление, редактирование и удаление уроков.</li>
|
||
<li>📋 Просмотр записей родителей на каждый урок.</li>
|
||
<li>🔍 Фильтрация уроков по классу, учителю, теме, параллели.</li>
|
||
<li>📂 Импорт уроков из JSON (структура: массив записей с полями "Класс (параллель)", "Класс (буква)", "Предмет", "Фамилия Учителя", "Имя Учителя", "Отчество Учителя", "Тема Урока").</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="card">
|
||
<h2>📊 Список записавшихся родителей <span class="badge">admin + Администрация</span></h2>
|
||
<p><strong>Ссылка:</strong> <a href="/info" target="_blank">/info</a></p>
|
||
<p>Доступен администраторам и пользователям, входящим в группы, указанные в переменной окружения <code>Администрация</code>.</p>
|
||
<ul>
|
||
<li>📋 Таблица со всеми записями родителей (ФИО, телефон, класс, предмет, учитель, тема, дата/время урока, дата регистрации).</li>
|
||
<li>🔎 Фильтрация по ФИО родителя, классу, предмету, учителю.</li>
|
||
<li>📎 Выгрузка отфильтрованных данных в CSV (совместим с Excel).</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<footer>
|
||
Система записи на открытые уроки. При возникновении вопросов обращайтесь к Калугину О.А..
|
||
</footer>
|
||
</main>
|
||
<script>
|
||
// Проверяем, авторизован ли пользователь, чтобы показать кнопку выхода
|
||
fetch('/api/me').then(res => res.json()).then(data => {
|
||
if (data.authenticated) {
|
||
const userInfo = document.getElementById('userInfo');
|
||
const logoutBtn = document.getElementById('logoutBtn');
|
||
userInfo.innerHTML = `👋 ${data.user.full_name} (${data.user.role})`;
|
||
logoutBtn.style.display = 'inline-block';
|
||
logoutBtn.onclick = async () => {
|
||
await fetch('/api/logout', { method: 'POST' });
|
||
window.location.href = '/';
|
||
};
|
||
}
|
||
});
|
||
</script>
|
||
</body>
|
||
</html> |