NoteJS/public/profile.html
Fovway 7376de1a5b feat: добавлен личный кабинет с аватарками и улучшена навигация
- Добавлена страница личного кабинета с возможностью загрузки аватарки
- Реализовано управление аватарками: загрузка, удаление, предварительный просмотр
- Исправлено отображение аватарки на странице профиля (центрирование)
- Убрано отображение аватарки со страницы заметок для чистоты интерфейса
- Обновлен .gitignore с исключениями для загруженных файлов и временных файлов
- Обновлен README.md с документацией по новым функциям
- Добавлена валидация загружаемых файлов (тип, размер, формат)
- Улучшена безопасность с изоляцией пользовательских данных
2025-10-19 00:36:19 +07:00

137 lines
4.3 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?v=3" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/iconify/2.0.0/iconify.min.js"></script>
</head>
<body>
<div class="container">
<header class="notes-header">
<span
><span class="iconify" data-icon="mdi:account"></span> Личный
кабинет</span
>
<div class="user-info">
<a href="/notes" class="back-btn">← Назад к заметкам</a>
<form action="/logout" method="POST" style="display: inline">
<button type="submit" class="logout-btn">
<span class="iconify" data-icon="mdi:logout"></span> Выйти
</button>
</form>
</div>
</header>
<div class="profile-container">
<!-- Секция аватарки -->
<div class="avatar-section">
<div class="avatar-wrapper">
<img
id="avatarImage"
src=""
alt="Аватар"
class="avatar-preview"
style="display: none"
/>
<div id="avatarPlaceholder" class="avatar-placeholder">
<span class="iconify" data-icon="mdi:account"></span>
</div>
</div>
<div class="avatar-buttons">
<label for="avatarInput" class="btn-upload">
<span class="iconify" data-icon="mdi:upload"></span> Загрузить
аватар
</label>
<input
type="file"
id="avatarInput"
accept="image/*"
style="display: none"
/>
<button
id="deleteAvatarBtn"
class="btn-delete"
style="display: none"
>
<span class="iconify" data-icon="mdi:delete"></span> Удалить
</button>
</div>
<p class="avatar-hint">
Максимальный размер: 5 МБ. Форматы: JPG, PNG, GIF
</p>
</div>
<!-- Секция данных профиля -->
<div class="profile-form">
<h3>Данные профиля</h3>
<div class="form-group">
<label for="username">Логин</label>
<input
type="text"
id="username"
placeholder="Логин"
minlength="3"
/>
</div>
<div class="form-group">
<label for="email">Email (необязательно)</label>
<input type="email" id="email" placeholder="example@example.com" />
</div>
<button id="updateProfileBtn" class="btnSave">
Сохранить изменения
</button>
<hr class="separator" />
<h3>Изменить пароль</h3>
<div class="form-group">
<label for="currentPassword">Текущий пароль</label>
<input
type="password"
id="currentPassword"
placeholder="Текущий пароль"
/>
</div>
<div class="form-group">
<label for="newPassword">Новый пароль</label>
<input
type="password"
id="newPassword"
placeholder="Новый пароль (минимум 6 символов)"
minlength="6"
/>
</div>
<div class="form-group">
<label for="confirmPassword">Подтвердите новый пароль</label>
<input
type="password"
id="confirmPassword"
placeholder="Подтвердите новый пароль"
/>
</div>
<button id="changePasswordBtn" class="btnSave">
Изменить пароль
</button>
</div>
</div>
<div id="messageContainer" class="message-container"></div>
</div>
<div class="footer">
<p>Создатель: <span>Fovway</span></p>
</div>
<script src="/profile.js"></script>
</body>
</html>