тип задачи

This commit is contained in:
2026-02-03 12:04:48 +05:00
parent 8503a2239e
commit 26badc5524
4 changed files with 10 additions and 66 deletions

View File

@@ -43,8 +43,9 @@
</div> </div>
<nav> <nav>
<button onclick="window.location.href = '/'" class="nav-btn tasks"><i class="fas fa-cog"></i> Главная</button> <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('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="showSection('create-task')" class="nav-btn create"><i class="fas fa-plus-circle"></i> Создать задачу</button>
<button onclick="showSection('tasks')" class="nav-btn tasks"><i class="fas fa-list"></i> Мои задачи</button>
<button onclick="showKanbanSection()" class="nav-btn kanban"><i class="fas fa-columns"></i> Канбан</button> <button onclick="showKanbanSection()" class="nav-btn kanban"><i class="fas fa-columns"></i> Канбан</button>
<!-- <!--
<button onclick="window.location.href = '/doc?action=create'" class="nav-btn create"><i class="fa-solid fa-file"></i> Согласование документов</button> <button onclick="window.location.href = '/doc?action=create'" class="nav-btn create"><i class="fa-solid fa-file"></i> Согласование документов</button>

View File

@@ -21,7 +21,7 @@ function setupEventListeners() {
document.getElementById('edit-assignment-form').addEventListener('submit', updateAssignment); document.getElementById('edit-assignment-form').addEventListener('submit', updateAssignment);
document.getElementById('rework-task-form').addEventListener('submit', sendForRework); document.getElementById('rework-task-form').addEventListener('submit', sendForRework);
// Файлы // Файлыcreate-task
document.getElementById('files').addEventListener('change', updateFileList); document.getElementById('files').addEventListener('change', updateFileList);
document.getElementById('edit-files').addEventListener('change', updateEditFileList); document.getElementById('edit-files').addEventListener('change', updateEditFileList);
@@ -46,6 +46,7 @@ async function createTask(event) {
const title = document.getElementById('title').value; const title = document.getElementById('title').value;
const description = document.getElementById('description').value; const description = document.getElementById('description').value;
const taskType = document.getElementById('task-type').value; // Добавлено из tasks.js
// Получаем полную дату и время из отдельных полей // Получаем полную дату и время из отдельных полей
const fullDateTime = getFullDateTime('due-date', 'due-time'); const fullDateTime = getFullDateTime('due-date', 'due-time');
@@ -63,6 +64,7 @@ async function createTask(event) {
const formData = new FormData(); const formData = new FormData();
formData.append('title', title); formData.append('title', title);
formData.append('description', description); formData.append('description', description);
formData.append('taskType', taskType); // Добавлено
formData.append('dueDate', fullDateTime); formData.append('dueDate', fullDateTime);
selectedUsers.forEach(userId => { selectedUsers.forEach(userId => {
@@ -83,7 +85,7 @@ async function createTask(event) {
if (response.ok) { if (response.ok) {
alert('Задача успешно создана!'); alert('Задача успешно создана!');
// Сброс формы // Сброс формы (из main.js)
document.getElementById('create-task-form').reset(); document.getElementById('create-task-form').reset();
document.getElementById('file-list').innerHTML = ''; document.getElementById('file-list').innerHTML = '';
document.getElementById('user-search').value = ''; document.getElementById('user-search').value = '';

View File

@@ -90,68 +90,7 @@ async function loadTasksWithoutDate() {
} }
} }
async function createTask(event) { // удален async function createTask(event)
event.preventDefault();
if (!currentUser) {
alert('Требуется аутентификация');
return;
}
const formData = new FormData();
formData.append('title', document.getElementById('title').value);
formData.append('description', document.getElementById('description').value);
// Добавляем тип задачи
const taskType = document.getElementById('task-type').value;
formData.append('taskType', taskType);
const dueDate = document.getElementById('due-date').value;
if (!dueDate) {
alert('Дата и время выполнения обязательны');
return;
}
formData.append('dueDate', dueDate);
// Используем selectedUsers вместо прямого доступа к DOM
if (selectedUsers.length === 0) {
alert('Выберите хотя бы одного исполнителя');
return;
}
selectedUsers.forEach(userId => {
formData.append('assignedUsers', userId);
});
const files = document.getElementById('files').files;
for (let i = 0; i < files.length; i++) {
formData.append('files', files[i]);
}
try {
const response = await fetch('/api/tasks', {
method: 'POST',
body: formData
});
if (response.ok) {
alert('Задача успешно создана!');
document.getElementById('create-task-form').reset();
document.getElementById('file-list').innerHTML = '';
document.getElementById('user-search').value = '';
selectedUsers = [];
renderUsersChecklist();
loadTasks();
loadActivityLogs();
showSection('tasks');
} else {
const error = await response.json();
alert(error.error || 'Ошибка создания задачи');
}
} catch (error) {
console.error('Ошибка:', error);
alert('Ошибка создания задачи');
}
}
async function openEditModal(taskId) { async function openEditModal(taskId) {
try { try {

View File

@@ -53,8 +53,10 @@ function renderTasks() {
<div class="task-header"> <div class="task-header">
<div class="task-title" onclick="toggleTask(${task.id})" style="cursor: pointer; display: flex; justify-content: space-between; align-items: center;"> <div class="task-title" onclick="toggleTask(${task.id})" style="cursor: pointer; display: flex; justify-content: space-between; align-items: center;">
<div style="flex: 1;"> <div style="flex: 1;">
<!--
${task.task_type ? `<span class="task-type-badge ${task.task_type}">${getTaskTypeDisplayName(task.task_type)}</span>` : ''}
-->
<span class="task-number">Задача №${task.id}</span> <span class="task-number">Задача №${task.id}</span>
<strong>${task.title}</strong> <strong>${task.title}</strong>
${isDeleted ? '<span class="deleted-badge">Удалена</span>' : ''} ${isDeleted ? '<span class="deleted-badge">Удалена</span>' : ''}
${isClosed ? '<span class="closed-badge">Закрыта</span>' : ''} ${isClosed ? '<span class="closed-badge">Закрыта</span>' : ''}