переделал ui
This commit is contained in:
@@ -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;
|
||||
Reference in New Issue
Block a user