domovoy_bot/web/templates/export.html
Admin d8c9599ac1 🔧 UI fixes: единое меню во всех страницах + кнопка запланированных постов
- Исправлено 'плавающее' меню (дублирование кнопок при навигации)
- Создан base.html - единый базовый шаблон для всех страниц
- Добавлена кнопка '📅 Запланированные посты' во все 11 страниц
- Sticky sidebar с улучшенным дизайном
- Все страницы теперь имеют одинаковое меню (11 кнопок)
- Улучшенная подсветка активного пункта (border-left)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-04-05 15:59:55 +04:00

103 lines
4.9 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Экспорт - Домовой Бот</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.0/font/bootstrap-icons.css" rel="stylesheet">
<style>
.sidebar {
min-height: 100vh;
background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%);
}
.sidebar .nav-link { color: rgba(255,255,255,0.8); padding: 1rem; }
.sidebar .nav-link:hover, .sidebar .nav-link.active { color: white; background-color: rgba(255,255,255,0.1); }
.content { padding: 2rem; }
</style>
</head>
<body>
<div class="container-fluid">
<div class="row">
<div class="col-md-2 sidebar p-0">
<div class="p-3 text-white text-center">
<h4><i class="bi bi-house-door"></i> Домовой Бот</h4>
</div>
<nav class="nav flex-column">
<a class="nav-link" href="/"><i class="bi bi-speedometer2"></i> Дашборд</a>
<a class="nav-link" href="/users"><i class="bi bi-people"></i> Пользователи</a>
<a class="nav-link active" href="/export"><i class="bi bi-download"></i> Экспорт</a>
<a class="nav-link" href="/scheduled_posts"><i class="bi bi-calendar2-plus"></i> Запланированные посты</a>
</nav>
</div>
<div class="col-md-10 content">
<h2 class="mb-4">Экспорт данных</h2>
<div class="row">
<div class="col-md-6">
<div class="card">
<div class="card-header">
<i class="bi bi-file-earmark-json"></i> Экспорт в JSON
</div>
<div class="card-body">
<p>Экспортирует всех пользователей и сообщения в JSON формат.</p>
<button class="btn btn-primary" onclick="exportJSON()">
<i class="bi bi-download"></i> Экспортировать
</button>
<div id="exportResult" class="mt-3"></div>
</div>
</div>
</div>
<div class="col-md-6">
<div class="card">
<div class="card-header">
<i class="bi bi-info-circle"></i> Информация
</div>
<div class="card-body">
<p>Экспорт включает:</p>
<ul>
<li>Всех пользователей</li>
<li>Все сообщения</li>
<li>Даты и время</li>
<li>Квартиры и телефоны</li>
</ul>
<p class="text-muted small">
Файл сохраняется в папке exports/
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
async function exportJSON() {
const resultDiv = document.getElementById('exportResult');
resultDiv.innerHTML = '<div class="alert alert-info">Экспорт...</div>';
try {
const response = await fetch('/api/export/json');
const data = await response.json();
if (data.success) {
resultDiv.innerHTML = `
<div class="alert alert-success">
✅ Экспорт успешно!<br>
Файл: ${data.filepath}
</div>
`;
} else {
resultDiv.innerHTML = '<div class="alert alert-danger">Ошибка экспорта</div>';
}
} catch (error) {
resultDiv.innerHTML = `<div class="alert alert-danger">Ошибка: ${error.message}</div>`;
}
}
</script>
</body>
</html>