240 lines
12 KiB
HTML
240 lines
12 KiB
HTML
<!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>@2025 </strong>МАОУ - СОШ № 25</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="showTasksWithoutDate()" id="tasks-no-date-btn">Задачи без срока</button>
|
||
<button onclick="showSection('logs')">Лог активности</button>
|
||
<button onclick="window.location.href = '/admin'" style="background: linear-gradient(135deg, #e74c3c, #c0392b);">Админ-панель</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()">×</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()">×</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()">×</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()">×</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> |