тип задачи
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -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 = '';
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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>' : ''}
|
||||||
|
|||||||
Reference in New Issue
Block a user