Files
minicrm/public/index.html
2025-12-14 13:31:28 +05:00

238 lines
11 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>School CRM - Управление задачами</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="login-modal" class="modal">
<div class="modal-content">
<h2>Вход в School CRM</h2>
<form id="login-form">
<div class="form-group">
<label for="login">Логин:</label>
<input type="text" id="login" name="login" required>
</div>
<div class="form-group">
<label for="password">Пароль:</label>
<input type="password" id="password" name="password" required>
</div>
<button type="submit">Войти</button>
</form>
<div class="test-users">
<h3>Тестовый пользователь:</h3>
<ul>
<li><strong>teacher</strong> / teacher123</li>
</ul>
</div>
</div>
</div>
<div class="container">
<header>
<h1>School CRM - Управление задачами</h1>
<div class="user-info">
<span id="current-user"></span>
<button onclick="logout()">Выйти</button>
</div>
<nav>
<button onclick="showSection('tasks')">Задачи</button>
<button onclick="showSection('create-task')">Создать задачу</button>
<button onclick="showSection('logs')">Лог активности</button>
</nav>
</header>
<main>
<section id="tasks-section" class="section">
<h2>Все задачи</h2>
<div id="tasks-controls">
<div class="filters">
<div class="filter-group">
<label for="search-tasks">Поиск:</label>
<input type="text" id="search-tasks" placeholder="Поиск по названию и описанию..." oninput="loadTasks()">
</div>
<div class="filter-group">
<label for="status-filter">Статус:</label>
<select id="status-filter" onchange="loadTasks()">
<option value="active,in_progress,assigned,overdue,rework">Все активные</option>
<option value="all">Все статусы</option>
<option value="assigned">Назначена</option>
<option value="in_progress">В работе</option>
<option value="rework">На доработке</option>
<option value="overdue">Просрочена</option>
<option value="completed">Выполнена</option>
<option value="closed">Закрыта</option>
</select>
</div>
<div class="filter-group">
<label for="creator-filter">Заказчик:</label>
<select id="creator-filter" onchange="loadTasks()">
<option value="">Все заказчики</option>
</select>
</div>
<div class="filter-group">
<label for="assignee-filter">Исполнитель:</label>
<select id="assignee-filter" onchange="loadTasks()">
<option value="">Все исполнители</option>
</select>
</div>
<div class="filter-group">
<label for="deadline-filter">Срок выполнения:</label>
<select id="deadline-filter" onchange="loadTasks()">
<option value="">Все сроки</option>
<option value="48h">Менее 48 часов</option>
<option value="24h">Менее 24 часов</option>
</select>
</div>
</div>
<label class="show-deleted-label" style="display: none;">
<input type="checkbox" id="show-deleted" onchange="loadTasks()">
Показать удаленные задачи
</label>
</div>
<div id="tasks-list"></div>
</section>
<section id="create-task-section" class="section">
<h2>Создать новую задачу</h2>
<form id="create-task-form" enctype="multipart/form-data">
<div class="form-group">
<label for="title">Название задачи:</label>
<input type="text" id="title" name="title" required>
</div>
<div class="form-group">
<label for="description">Описание:</label>
<textarea id="description" name="description" rows="4"></textarea>
</div>
<div class="form-group">
<label for="due-date">Дата и время выполнения:</label>
<input type="datetime-local" id="due-date" name="dueDate" required>
</div>
<div class="form-group">
<label>Исполнители:</label>
<div class="user-search">
<input type="text" id="user-search" placeholder="Поиск исполнителей..." oninput="filterUsers()">
</div>
<div id="users-checklist" class="checkbox-group"></div>
</div>
<div class="form-group">
<label for="files">Прикрепить файлы (до 15 файлов, максимум 300MB):</label>
<input type="file" id="files" name="files" multiple>
<div id="file-list"></div>
</div>
<button type="submit">Создать задачу</button>
</form>
</section>
<section id="logs-section" class="section">
<h2>Лог активности</h2>
<div id="logs-list"></div>
</section>
</main>
</div>
<div id="edit-task-modal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeEditModal()">&times;</span>
<h3>Редактировать задачу</h3>
<form id="edit-task-form" enctype="multipart/form-data">
<input type="hidden" id="edit-task-id">
<div class="form-group">
<label for="edit-title">Название задачи:</label>
<input type="text" id="edit-title" name="title" required>
</div>
<div class="form-group">
<label for="edit-description">Описание:</label>
<textarea id="edit-description" name="description" rows="4"></textarea>
</div>
<div class="form-group">
<label for="edit-due-date">Дата и время выполнения:</label>
<input type="datetime-local" id="edit-due-date" name="dueDate" required>
</div>
<div class="form-group">
<label>Исполнители:</label>
<div class="user-search">
<input type="text" id="edit-user-search" placeholder="Поиск исполнителей..." oninput="filterEditUsers()">
</div>
<div id="edit-users-checklist" class="checkbox-group"></div>
</div>
<div class="form-group">
<label for="edit-files">Добавить файлы:</label>
<input type="file" id="edit-files" name="files" multiple>
<div id="edit-file-list"></div>
</div>
<button type="submit">Сохранить изменения</button>
</form>
</div>
</div>
<div id="copy-task-modal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeCopyModal()">&times;</span>
<h3>Создать копию задачи</h3>
<form id="copy-task-form">
<input type="hidden" id="copy-task-id">
<div class="form-group">
<label for="copy-due-date">Дата и время выполнения для копии:</label>
<input type="datetime-local" id="copy-due-date" name="dueDate" required>
</div>
<div class="form-group">
<label>Назначить исполнителей для копии:</label>
<div class="user-search">
<input type="text" id="copy-user-search" placeholder="Поиск исполнителей..." oninput="filterCopyUsers()">
</div>
<div id="copy-users-checklist" class="checkbox-group"></div>
</div>
<button type="submit">Создать копию</button>
</form>
</div>
</div>
<div id="edit-assignment-modal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeEditAssignmentModal()">&times;</span>
<h3>Редактировать сроки исполнителя</h3>
<form id="edit-assignment-form">
<input type="hidden" id="edit-assignment-task-id">
<input type="hidden" id="edit-assignment-user-id">
<div class="form-group">
<label for="edit-assignment-due-date">Дата и время выполнения:</label>
<input type="datetime-local" id="edit-assignment-due-date" name="dueDate" required>
</div>
<button type="submit">Сохранить сроки</button>
</form>
</div>
</div>
<div id="rework-task-modal" class="modal">
<div class="modal-content">
<span class="close" onclick="closeReworkModal()">&times;</span>
<h3>Вернуть задачу на доработку</h3>
<form id="rework-task-form">
<input type="hidden" id="rework-task-id">
<div class="form-group">
<label for="rework-comment">Комментарий к доработке:</label>
<textarea id="rework-comment" name="comment" rows="4" placeholder="Укажите, что нужно исправить..." required></textarea>
</div>
<button type="submit">Вернуть на доработку</button>
</form>
</div>
</div>
<script src="script.js"></script>
</body>
</html>