// loadMyCreatedTasks.js - Задачи, созданные пользователем и назначенные ему // Глобальные переменные let expandedMyTasks = new Set(); let updateInterval = null; let isUpdating = false; // Показать секцию "Мои задачи (как автор)" function showMyTasksSection() { showSection('mytasks'); window.currentTaskView = 'my_assigned'; loadTasks(); startAutoUpdate(); } // Показать секцию "Задачи для исполнения" function showRunTasksSection() { showSection('runtasks'); window.currentTaskView = 'assigned_to_me'; loadTasks(); startAutoUpdate(); } // Остановка автообновления при уходе с секции function hideTasksSection() { stopAutoUpdate(); } // Запуск автоматического обновления function startAutoUpdate() { // Останавливаем предыдущий интервал, если был stopAutoUpdate(); // Запускаем новый интервал (каждые 15 секунд) updateInterval = setInterval(() => { autoUpdateTasks(); }, 120000); // 120000 мс = 2 минуты console.log('🔄 Автообновление задач запущено (каждые 2 минуты)'); } // Остановка автоматического обновления function stopAutoUpdate() { if (updateInterval) { clearInterval(updateInterval); updateInterval = null; console.log('⏹️ Автообновление задач остановлено'); } } // Функция автоматического обновления async function autoUpdateTasks() { // Предотвращаем множественные обновления if (isUpdating) { console.log('⏳ Обновление уже выполняется, пропускаем...'); return; } // Проверяем, активна ли секция const mytasksSection = document.getElementById('mytasks-section'); const runtasksSection = document.getElementById('runtasks-section'); if ((!mytasksSection || !mytasksSection.classList.contains('active')) && (!runtasksSection || !runtasksSection.classList.contains('active'))) { console.log('⏸️ Секция неактивна, автообновление приостановлено'); stopAutoUpdate(); return; } isUpdating = true; try { console.log('🔄 Автообновление задач...', new Date().toLocaleTimeString()); await loadTasks(); // просто перезагружаем с текущими фильтрами // Показываем уведомление об обновлении showUpdateNotification(); } catch (error) { console.error('❌ Ошибка автообновления:', error); } finally { isUpdating = false; } } // Показ уведомления об обновлении function showUpdateNotification() { const notification = document.createElement('div'); notification.className = 'update-notification'; notification.innerHTML = ` 🔄 Данные обновлены ${new Date().toLocaleTimeString()} `; document.body.appendChild(notification); // Анимация появления и исчезновения setTimeout(() => { notification.classList.add('show'); }, 10); setTimeout(() => { notification.classList.remove('show'); setTimeout(() => { notification.remove(); }, 300); }, 2000); } // Функция фильтрации для "Мои задачи" - просто перезагружает с текущими фильтрами function filterMyTasks() { loadTasks(); } // Функция фильтрации для "Задачи для исполнения" function filterRunTasks() { loadTasks(); } // Рендеринг для "Мои задачи" function renderMyTasks() { const container = document.getElementById('mytasks-list'); if (!container) return; if (!window.tasks || window.tasks.length === 0) { container.innerHTML = '