переделал ui
This commit is contained in:
@@ -62,26 +62,18 @@
|
||||
<div class="container">
|
||||
<header>
|
||||
<div class="header-top">
|
||||
<div style="display: flex; align-items: center; justify-content: center; gap: 20px; margin-bottom: 20px;">
|
||||
<img src="login2.png" alt="School CRM Logo" style="max-width: 200px; max-height: 110px; flex-shrink: 0;">
|
||||
<h1 style="margin: 0;"> School CRM - Управление задачами</h1>
|
||||
<img src="login2.png" alt="School CRM Logo" style="max-width: 200px; max-height: 110px; flex-shrink: 0;">
|
||||
</div>
|
||||
<div style="display: flex; align-items: center; justify-content: center; gap: 20px; margin-bottom: 20px;">
|
||||
<img src="login2.png" alt="School CRM Logo" style="max-width: 200px; max-height: 110px; flex-shrink: 0;">
|
||||
<h1 style="margin: 0;"> School CRM - Управление задачами</h1>
|
||||
<img src="login2.png" alt="School CRM Logo" style="max-width: 200px; max-height: 110px; flex-shrink: 0;">
|
||||
</div>
|
||||
|
||||
<div class="user-info">
|
||||
<span id="current-user"></span>
|
||||
</div>
|
||||
</div>
|
||||
<nav id="navbar-container">
|
||||
<!--
|
||||
<button onclick="window.location.href = '/'" class="nav-btn tasks"><i class="fas fa-cog"></i> Главная</button>
|
||||
<button onclick="showSection('tasks')" class="nav-btn tasks"><i class="fas fa-list"></i> Задачи</button>
|
||||
<button onclick="showSection('create-task')" class="nav-btn create"><i class="fas fa-plus-circle"></i> Создать задачу</button>
|
||||
<button onclick="showKanbanSection()" class="nav-btn kanban"><i class="fas fa-columns"></i> Канбан</button>
|
||||
<button onclick="showSection('profile')" class="nav-btn profile" id="profile-btn"><i class="fas fa-user-circle"></i> Личный кабинет</button>
|
||||
<button onclick="window.location.href = '/admin'" class="nav-btn admin"><i class="fas fa-cog"></i> Админ-панель</button>
|
||||
<button onclick="logout()" class="btn-logout"><i class="fas fa-sign-out-alt"></i> Выйти</button>
|
||||
-->
|
||||
<!-- Кнопки навигации будут добавлены через navbar.js -->
|
||||
</nav>
|
||||
</header>
|
||||
<main>
|
||||
@@ -89,16 +81,14 @@
|
||||
<h2><i class="fas fa-tasks"></i> Все задачи</h2>
|
||||
<div id="tasks-controls">
|
||||
<div class="filters">
|
||||
<!--
|
||||
<div class="filter-group">
|
||||
<label for="task-view-filter"><i class="fas fa-eye"></i> Вид задач:</label>
|
||||
<select id="task-view-filter" onchange="changeTaskView()">
|
||||
<option value="all">Все задачи</option>
|
||||
<option value="my_assigned">Задачи, которые я назначил</option>
|
||||
<option value="assigned_to_me">Задачи, назначенные мне</option>
|
||||
</select>
|
||||
</div>
|
||||
-->
|
||||
<div class="filter-group">
|
||||
<label for="task-view-filter"><i class="fas fa-eye"></i> Вид задач:</label>
|
||||
<select id="task-view-filter" onchange="changeTaskView()">
|
||||
<option value="all">Все задачи</option>
|
||||
<option value="my_assigned">Задачи, которые я назначил</option>
|
||||
<option value="assigned_to_me">Задачи, назначенные мне</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group">
|
||||
<label for="status-filter"><i class="fas fa-filter"></i> Статус:</label>
|
||||
<select id="status-filter" onchange="loadTasks()">
|
||||
@@ -113,21 +103,21 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group">
|
||||
<label for="type-filter"><i class="fas fa-tag"></i> Тип:</label>
|
||||
<select id="type-filter" onchange="loadTasks()">
|
||||
<option value="">Все типы</option>
|
||||
<option value="regular">Обычная задача</option>
|
||||
<option value="document">Согласование документа</option>
|
||||
<option value="it">ИТ отдел</option>
|
||||
<option value="ahch">АХЧ</option>
|
||||
<option value="psychologist">Психолог</option>
|
||||
<option value="speech_therapist">Логопед</option>
|
||||
<option value="Social_educator">Социальный педагог</option>
|
||||
<option value="hr">Диспетчер расписания</option>
|
||||
<option value="certificate">Справка</option>
|
||||
<option value="e_journal">Эл. журнал</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="type-filter"><i class="fas fa-tag"></i> Тип:</label>
|
||||
<select id="type-filter" onchange="loadTasks()">
|
||||
<option value="">Все типы</option>
|
||||
<option value="regular">Обычная задача</option>
|
||||
<option value="document">Согласование документа</option>
|
||||
<option value="it">ИТ отдел</option>
|
||||
<option value="ahch">АХЧ</option>
|
||||
<option value="psychologist">Психолог</option>
|
||||
<option value="speech_therapist">Логопед</option>
|
||||
<option value="Social_educator">Социальный педагог</option>
|
||||
<option value="hr">Диспетчер расписания</option>
|
||||
<option value="certificate">Справка</option>
|
||||
<option value="e_journal">Эл. журнал</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group">
|
||||
<label for="creator-filter"><i class="fas fa-user-tie"></i> Заказчик:</label>
|
||||
<select id="creator-filter" onchange="loadTasks()">
|
||||
@@ -153,10 +143,10 @@
|
||||
<input type="text" id="search-tasks" placeholder="Поиск по названию и описанию..." oninput="loadTasks()">
|
||||
</div>
|
||||
<div class="filter-actions">
|
||||
<button type="button" class="btn-reset" onclick="resetAllFilters()">
|
||||
<i class="fas fa-undo"></i> Сбросить фильтры
|
||||
</button>
|
||||
</div>
|
||||
<button type="button" class="btn-reset" onclick="resetAllFilters()">
|
||||
<i class="fas fa-undo"></i> Сбросить фильтры
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<label class="show-deleted-label" style="display: none;">
|
||||
<input type="checkbox" id="show-deleted" onchange="loadTasks()">
|
||||
@@ -170,24 +160,24 @@
|
||||
<h2><i class="fas fa-plus-circle"></i> Создать новую задачу</h2>
|
||||
<form id="create-task-form" enctype="multipart/form-data">
|
||||
<div class="task-type-selector">
|
||||
<div class="task-type-buttons">
|
||||
<button type="button" class="task-type-btn active" data-type="regular" onclick="selectTaskType('regular')"><i class="fas fa-tasks"></i> Обычная задача</button>
|
||||
<button type="button" class="task-type-btn" data-type="document" onclick="selectTaskType('document')"><i class="fas fa-file-signature"></i> Согласование документа</button>
|
||||
<button type="button" class="task-type-btn" data-type="it" onclick="selectTaskType('it')"><i class="fas fa-desktop"></i> Заявка в ИТ отдел</button>
|
||||
<button type="button" class="task-type-btn" data-type="ahch" onclick="selectTaskType('ahch')"><i class="fas fa-tools"></i> Заявка в АХЧ</button>
|
||||
<button type="button" class="task-type-btn" data-type="psychologist" onclick="selectTaskType('psychologist')"><i class="fas fa-brain"></i> Заявка к психологу</button>
|
||||
<button type="button" class="task-type-btn" data-type="speech_therapist" onclick="selectTaskType('speech_therapist')"><i class="fas fa-comment-medical"></i> Заявка к логопеду</button>
|
||||
<button type="button" class="task-type-btn" data-type="psychologist" onclick="selectTaskType('Social_educator')"><i class="fas fa-user-graduate"></i> Социальный педагог</button>
|
||||
<button type="button" class="task-type-btn" data-type="hr" onclick="selectTaskType('hr')"><i class="fas fa-users"></i> Заявка диспетчеру расписания</button>
|
||||
<button type="button" class="task-type-btn" data-type="certificate" onclick="selectTaskType('certificate')">
|
||||
<i class="fas fa-book"></i> Заявка на справку
|
||||
</button>
|
||||
<button type="button" class="task-type-btn" data-type="e_journal" onclick="selectTaskType('e_journal')">
|
||||
<i class="fas fa-book"></i> Доступ в электронный журнал
|
||||
</button>
|
||||
</div>
|
||||
<input type="hidden" id="task-type" name="taskType" value="regular">
|
||||
</div>
|
||||
<div class="task-type-buttons">
|
||||
<button type="button" class="task-type-btn active" data-type="regular" onclick="selectTaskType('regular')"><i class="fas fa-tasks"></i> Обычная задача</button>
|
||||
<button type="button" class="task-type-btn" data-type="document" onclick="selectTaskType('document')"><i class="fas fa-file-signature"></i> Согласование документа</button>
|
||||
<button type="button" class="task-type-btn" data-type="it" onclick="selectTaskType('it')"><i class="fas fa-desktop"></i> Заявка в ИТ отдел</button>
|
||||
<button type="button" class="task-type-btn" data-type="ahch" onclick="selectTaskType('ahch')"><i class="fas fa-tools"></i> Заявка в АХЧ</button>
|
||||
<button type="button" class="task-type-btn" data-type="psychologist" onclick="selectTaskType('psychologist')"><i class="fas fa-brain"></i> Заявка к психологу</button>
|
||||
<button type="button" class="task-type-btn" data-type="speech_therapist" onclick="selectTaskType('speech_therapist')"><i class="fas fa-comment-medical"></i> Заявка к логопеду</button>
|
||||
<button type="button" class="task-type-btn" data-type="Social_educator" onclick="selectTaskType('Social_educator')"><i class="fas fa-user-graduate"></i> Социальный педагог</button>
|
||||
<button type="button" class="task-type-btn" data-type="hr" onclick="selectTaskType('hr')"><i class="fas fa-users"></i> Заявка диспетчеру расписания</button>
|
||||
<button type="button" class="task-type-btn" data-type="certificate" onclick="selectTaskType('certificate')">
|
||||
<i class="fas fa-book"></i> Заявка на справку
|
||||
</button>
|
||||
<button type="button" class="task-type-btn" data-type="e_journal" onclick="selectTaskType('e_journal')">
|
||||
<i class="fas fa-book"></i> Доступ в электронный журнал
|
||||
</button>
|
||||
</div>
|
||||
<input type="hidden" id="task-type" name="taskType" value="regular">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="title"><i class="fas fa-heading"></i> Название задачи:</label>
|
||||
<input type="text" id="title" name="title" required>
|
||||
@@ -198,15 +188,15 @@
|
||||
<textarea id="description" name="description" rows="4"></textarea>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="due-date"><i class="fas fa-calendar-alt"></i> Дата выполнения:</label>
|
||||
<div class="time-buttons">
|
||||
<button type="button" class="time-btn active" onclick="setTaskTime('12:00')"><i class="fas fa-sun"></i> До обеда</button>
|
||||
<input type="date" class="date-btn" id="due-date" name="dueDate" required>
|
||||
<button type="button" class="time-btn" onclick="setTaskTime('19:00')"><i class="fas fa-moon"></i> После обеда</button>
|
||||
</div>
|
||||
<input type="hidden" id="due-time" name="dueTime" value="12:00">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="due-date"><i class="fas fa-calendar-alt"></i> Дата выполнения:</label>
|
||||
<div class="time-buttons">
|
||||
<button type="button" class="time-btn active" onclick="setTaskTime('12:00')"><i class="fas fa-sun"></i> До обеда</button>
|
||||
<input type="date" class="date-btn" id="due-date" name="dueDate" required>
|
||||
<button type="button" class="time-btn" onclick="setTaskTime('19:00')"><i class="fas fa-moon"></i> После обеда</button>
|
||||
</div>
|
||||
<input type="hidden" id="due-time" name="dueTime" value="12:00">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label><i class="fas fa-users"></i> Исполнители:</label>
|
||||
@@ -232,49 +222,51 @@
|
||||
</button>
|
||||
</form>
|
||||
</section>
|
||||
<div id="mytasks-section" class="section">
|
||||
<h2><i class="fas fa-user-edit"></i> Мои задачи (как автор)</h2>
|
||||
<div class="filters" style="margin-bottom: 20px;">
|
||||
<div class="filter-group">
|
||||
<label for="mytasks-status-filter"><i class="fas fa-filter"></i> Статус:</label>
|
||||
<select id="mytasks-status-filter" onchange="filterMyTasks()">
|
||||
<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>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group" style="flex-grow: 1;">
|
||||
<label for="mytasks-search"><i class="fas fa-search"></i> Поиск:</label>
|
||||
<input type="text" id="mytasks-search" placeholder="Поиск по названию..." oninput="filterMyTasks()">
|
||||
</div>
|
||||
</div>
|
||||
<div id="mytasks-list" class="tasks-container"></div>
|
||||
</div>
|
||||
|
||||
<div id="runtasks-section" class="section">
|
||||
<h2><i class="fas fa-user-check"></i> Задачи для исполнения</h2>
|
||||
<div class="filters" style="margin-bottom: 20px;">
|
||||
<div class="filter-group">
|
||||
<label for="runtasks-status-filter"><i class="fas fa-filter"></i> Статус:</label>
|
||||
<select id="runtasks-status-filter" onchange="filterRunTasks()">
|
||||
<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>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group" style="flex-grow: 1;">
|
||||
<label for="runtasks-search"><i class="fas fa-search"></i> Поиск:</label>
|
||||
<input type="text" id="runtasks-search" placeholder="Поиск по названию..." oninput="filterRunTasks()">
|
||||
</div>
|
||||
</div>
|
||||
<div id="runtasks-list" class="tasks-container"></div>
|
||||
</div>
|
||||
<div id="mytasks-section" class="section">
|
||||
<h2><i class="fas fa-user-edit"></i> Мои задачи (как автор)</h2>
|
||||
<div class="filters" style="margin-bottom: 20px;">
|
||||
<div class="filter-group">
|
||||
<label for="mytasks-status-filter"><i class="fas fa-filter"></i> Статус:</label>
|
||||
<select id="mytasks-status-filter" onchange="filterMyTasks()">
|
||||
<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>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group" style="flex-grow: 1;">
|
||||
<label for="mytasks-search"><i class="fas fa-search"></i> Поиск:</label>
|
||||
<input type="text" id="mytasks-search" placeholder="Поиск по названию..." oninput="filterMyTasks()">
|
||||
</div>
|
||||
</div>
|
||||
<div id="mytasks-list" class="tasks-container"></div>
|
||||
</div>
|
||||
|
||||
<div id="runtasks-section" class="section">
|
||||
<h2><i class="fas fa-user-check"></i> Задачи для исполнения</h2>
|
||||
<div class="filters" style="margin-bottom: 20px;">
|
||||
<div class="filter-group">
|
||||
<label for="runtasks-status-filter"><i class="fas fa-filter"></i> Статус:</label>
|
||||
<select id="runtasks-status-filter" onchange="filterRunTasks()">
|
||||
<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>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-group" style="flex-grow: 1;">
|
||||
<label for="runtasks-search"><i class="fas fa-search"></i> Поиск:</label>
|
||||
<input type="text" id="runtasks-search" placeholder="Поиск по названию..." oninput="filterRunTasks()">
|
||||
</div>
|
||||
</div>
|
||||
<div id="runtasks-list" class="tasks-container"></div>
|
||||
</div>
|
||||
|
||||
<section id="logs-section" class="section">
|
||||
<h2><i class="fas fa-history"></i> Лог активности</h2>
|
||||
<div id="logs-list"></div>
|
||||
@@ -301,13 +293,13 @@
|
||||
</div>
|
||||
<small>Email для уведомлений</small>
|
||||
</div>
|
||||
<div class="form-group hidden">
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="telegram-notifications" name="telegram_notifications" disabled><span><i class="fab fa-telegram"></i> Telegram уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="vk-notifications" name="vk_notifications" disabled><span><i class="fab fa-vk"></i> ВКонтакте уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="sberbank-notifications" name="sberbank_notifications" disabled><span><i class="fas fa-university"></i> Сбербанк Онлайн уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="yandex-notifications" name="yandex_notifications" disabled><span><i class="fab fa-yandex"></i> Яндекс уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="gosuslugi-notifications" name="gosuslugi_notifications" disabled><span><i class="fas fa-passport"></i> Госуслуги уведомления (скоро)</span></label></div>
|
||||
</div>
|
||||
<div class="form-group hidden">
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="telegram-notifications" name="telegram_notifications" disabled><span><i class="fab fa-telegram"></i> Telegram уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="vk-notifications" name="vk_notifications" disabled><span><i class="fab fa-vk"></i> ВКонтакте уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="sberbank-notifications" name="sberbank_notifications" disabled><span><i class="fas fa-university"></i> Сбербанк Онлайн уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="yandex-notifications" name="yandex_notifications" disabled><span><i class="fab fa-yandex"></i> Яндекс уведомления (скоро)</span></label></div>
|
||||
<div class="form-group"><label class="checkbox-label"><input type="checkbox" id="gosuslugi-notifications" name="gosuslugi_notifications" disabled><span><i class="fas fa-passport"></i> Госуслуги уведомления (скоро)</span></label></div>
|
||||
</div>
|
||||
<button type="submit" class="btn-primary">
|
||||
<i class="fas fa-save"></i> Сохранить настройки
|
||||
</button>
|
||||
@@ -384,23 +376,9 @@
|
||||
<input type="date" class="date-btn" id="copy-due-date" name="dueDate" required>
|
||||
<input type="hidden" id="copy-due-time" name="dueTime" value="19:00">
|
||||
<input type="text" id="copy-user-search" placeholder="Поиск исполнителей..." oninput="filterCopyUsers()">
|
||||
<!--
|
||||
<div class="time-buttons">
|
||||
<button type="button" class="copy-time-btn active" onclick="setCopyTaskTime('12:00')">
|
||||
<i class="fas fa-sun"></i> До обеда (12:00)
|
||||
</button>
|
||||
<button type="button" class="copy-time-btn" onclick="setCopyTaskTime('19:00')">
|
||||
<i class="fas fa-moon"></i> После обеда (19:00)
|
||||
</button>
|
||||
</div>
|
||||
-->
|
||||
</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" class="btn-primary">
|
||||
|
||||
Reference in New Issue
Block a user