переделал ui

This commit is contained in:
2026-03-04 12:09:40 +05:00
parent 3b68dfc042
commit 850a23e962
7 changed files with 1296 additions and 1685 deletions

View File

@@ -1,8 +1,10 @@
// tasks.js - Основные операции с задачами
let tasks = [];
let tasks = []; // локальная переменная
window.tasks = tasks; // делаем доступной глобально
let expandedTasks = new Set();
let showingTasksWithoutDate = false;
// Функция загрузки задач с фильтрацией на сервере
async function loadTasks() {
try {
// Получаем значения фильтров
@@ -13,6 +15,9 @@ async function loadTasks() {
const searchQuery = document.getElementById('search-tasks')?.value || '';
const typeFilter = document.getElementById('type-filter')?.value || '';
// ===== ДОБАВЛЕНО: получаем текущий вид из глобальной переменной =====
const view = window.currentTaskView || 'all'; // 'all', 'my_assigned', 'assigned_to_me'
// Формируем URL с параметрами
let url = '/api/tasks?';
const params = [];
@@ -41,6 +46,10 @@ async function loadTasks() {
params.push(`task_type=${encodeURIComponent(typeFilter)}`);
}
if (view !== 'all') {
params.push(`view=${encodeURIComponent(view)}`);
}
url += params.join('&');
console.log('Загрузка задач с фильтрами:', url);
@@ -51,6 +60,7 @@ async function loadTasks() {
}
tasks = await response.json();
window.tasks = tasks; // синхронизируем глобальную переменную
console.log(`Загружено ${tasks.length} задач`);
// Загружаем поля документа для задач типа "document"
@@ -59,20 +69,8 @@ async function loadTasks() {
// Загружаем файлы для развернутых задач
await loadFilesForExpandedTasks();
// Обновляем отображение
const activeSection = document.querySelector('.section.active');
if (activeSection) {
const sectionId = activeSection.id;
if (sectionId === 'mytasks-section') {
filterMyTasks();
} else if (sectionId === 'runtasks-section') {
filterRunTasks();
} else {
renderTasks();
}
} else {
renderTasks();
}
// Обновляем отображение в зависимости от активной секции
renderTasksForActiveSection();
} catch (error) {
console.error('Ошибка загрузки задач:', error);
@@ -83,6 +81,34 @@ async function loadTasks() {
}
}
// Новая функция для определения активной секции и рендеринга
function renderTasksForActiveSection() {
const activeSection = document.querySelector('.section.active');
if (!activeSection) {
renderTasks(); // по умолчанию
return;
}
const sectionId = activeSection.id;
if (sectionId === 'mytasks-section') {
if (typeof renderMyTasks === 'function') {
renderMyTasks();
} else {
renderTasksInContainer('mytasks-list', tasks);
}
} else if (sectionId === 'runtasks-section') {
if (typeof renderRunTasks === 'function') {
renderRunTasks();
} else {
renderTasksInContainer('runtasks-list', tasks);
}
} else if (sectionId === 'tasks-section') {
renderTasks();
} else {
renderTasks();
}
}
// Новая функция для загрузки полей документов
async function loadDocumentFieldsForTasks() {
const documentTasks = tasks.filter(task => task.task_type === 'document');
@@ -618,4 +644,7 @@ function debugDocumentFields() {
}
// Вызываем отладку после загрузки (можно вызвать вручную из консоли)
window.debugDocumentFields = debugDocumentFields;
window.debugDocumentFields = debugDocumentFields;
window.loadTasks = loadTasks;
window.updateAssignment = updateAssignment;
window.renderTasksForActiveSection = renderTasksForActiveSection;