From 4456844e5046d34c554e50c4ac2bd44644987edb Mon Sep 17 00:00:00 2001 From: kalugin66 Date: Wed, 4 Mar 2026 14:37:11 +0500 Subject: [PATCH] completed --- public/auth.js | 4 ++-- public/main.js | 2 +- public/navbar.js | 8 ++++---- public/signature.js | 13 +++---------- public/tasks.js | 8 ++++---- public/ui.js | 25 +++++++++++++++++++++---- 6 files changed, 35 insertions(+), 25 deletions(-) diff --git a/public/auth.js b/public/auth.js index d57672b..e0819c6 100644 --- a/public/auth.js +++ b/public/auth.js @@ -124,7 +124,7 @@ function reloadAllScripts() { function loadScriptsSequentially(scripts, index) { if (index >= scripts.length) { - console.log('✅ Все скрипты успешно перезагружены'); + ////console.log('✅ Все скрипты успешно перезагружены'); // Инициализация после загрузки всех скриптов setTimeout(() => { @@ -149,7 +149,7 @@ function loadScriptsSequentially(scripts, index) { } function initializeAfterReload() { - console.log('🚀 Инициализация интерфейса после перезагрузки...'); + ////console.log('🚀 Инициализация интерфейса после перезагрузки...'); // Создаем навигацию if (typeof createNavigation === 'function') { diff --git a/public/main.js b/public/main.js index b06d44d..cfdcfb5 100644 --- a/public/main.js +++ b/public/main.js @@ -1,5 +1,4 @@ // main.js - Главный файл инициализации -//let currentTaskView = 'all'; // 'all', 'my_assigned', 'assigned_to_me' window.currentTaskView = 'all'; // 'all', 'my_assigned', 'assigned_to_me' let allTasksCache = []; // Кэш всех задач @@ -515,4 +514,5 @@ function showSection(sectionName) { function showKanbanSection() { showSection('kanban'); } +window.setupEventListeners = setupEventListeners; diff --git a/public/navbar.js b/public/navbar.js index 6b2076d..f0281c3 100644 --- a/public/navbar.js +++ b/public/navbar.js @@ -48,10 +48,10 @@ function createNavigation() { if (!navbar) return; // 👇 ДОБАВЛЯЕМ ПОДРОБНЫЕ ЛОГИ 👇 if (currentUser) { - console.log('ID:', currentUser.id); - console.log('ФИО:', currentUser.name); - console.log('Логин:', currentUser.login); - console.log('Роль:', currentUser.role); + //console.log('ID:', currentUser.id); + //console.log('ФИО:', currentUser.name); + //console.log('Логин:', currentUser.login); + //console.log('Роль:', currentUser.role); } else { console.log('currentUser отсутствует (не авторизован)'); } diff --git a/public/signature.js b/public/signature.js index 08ca6a0..5e02172 100644 --- a/public/signature.js +++ b/public/signature.js @@ -24,7 +24,7 @@ const data = await response.json(); if (data.user) { currentUser = data.user; - console.log('✅ Signature: текущий пользователь', currentUser); + ////console.log('✅ Signature: текущий пользователь', currentUser); // Проверяем, является ли пользователь подписантом await checkIfUserIsSigner(); @@ -51,7 +51,7 @@ signer.name === currentUser.name ); - console.log('✅ Signature: пользователь является подписантом?', isCurrentUserSigner); + ////console.log('✅ Signature: пользователь является подписантом?', isCurrentUserSigner); return isCurrentUserSigner; } catch (error) { console.error('❌ Signature: ошибка проверки подписанта', error); @@ -145,13 +145,6 @@ if (response.ok) { alert(`✅ Задача ${signers.length > 1 ? 'назначена подписантам' : 'переназначена подписанту'}`); - // Отправляем запрос на завершение для старого исполнителя - await fetch(`/api/tasks/${taskId}/status`, { - method: 'PUT', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify({ userId: oldUserId, status: 'completed' }) - }); - // Пробуем перезагрузить задачи разными способами if (window.TasksType && typeof window.TasksType.loadTasks === 'function') { window.TasksType.loadTasks(); @@ -338,7 +331,7 @@ }; } - console.log('✅ Signature module loaded. User is signer:', isCurrentUserSigner); + ////console.log('✅ Signature module loaded. User is signer:', isCurrentUserSigner); } // Запускаем инициализацию после загрузки DOM diff --git a/public/tasks.js b/public/tasks.js index b3b9ecd..8e63fea 100644 --- a/public/tasks.js +++ b/public/tasks.js @@ -52,7 +52,7 @@ async function loadTasks() { url += params.join('&'); - console.log('Загрузка задач с фильтрами:', url); + ////console.log('Загрузка задач с фильтрами:', url); const response = await fetch(url); if (!response.ok) { @@ -61,7 +61,7 @@ async function loadTasks() { tasks = await response.json(); window.tasks = tasks; // синхронизируем глобальную переменную - console.log(`Загружено ${tasks.length} задач`); + //console.log(`Загружено ${tasks.length} задач`); // Загружаем поля документа для задач типа "document" await loadDocumentFieldsForTasks(); @@ -117,7 +117,7 @@ async function loadDocumentFieldsForTasks() { return; } - console.log(`Загрузка полей документов для ${documentTasks.length} задач`); + //console.log(`Загрузка полей документов для ${documentTasks.length} задач`); // Загружаем поля для каждой задачи for (const task of documentTasks) { @@ -126,7 +126,7 @@ async function loadDocumentFieldsForTasks() { if (docResponse.ok) { const docData = await docResponse.json(); task.document_fields = docData.data || {}; - console.log(`✅ Загружены поля для задачи ${task.id}:`, task.document_fields); + //console.log(`✅ Загружены поля для задачи ${task.id}:`, task.document_fields); } else { task.document_fields = {}; } diff --git a/public/ui.js b/public/ui.js index 7d85694..7b450f0 100644 --- a/public/ui.js +++ b/public/ui.js @@ -108,12 +108,20 @@ function renderDocumentFields(taskId, fields) { function renderTasks() { const container = document.getElementById('tasks-list'); const showDeleted = document.getElementById('show-deleted')?.checked || false; + // Получаем выбранное значение из селекта статусов + const statusFilter = document.getElementById('status-filter')?.value; let filteredTasks = window.tasks; if (!showDeleted) { filteredTasks = window.tasks.filter(task => task.status === 'active'); } - + +if (statusFilter !== 'completed') { + filteredTasks = filteredTasks.filter(task => { + const myAssignment = task.assignments?.find(a => parseInt(a.user_id) === currentUser.id); + return !myAssignment || myAssignment.status !== 'completed'; + }); +} if (filteredTasks.length === 0) { container.innerHTML = '
Задачи не найдены
'; return; @@ -240,13 +248,22 @@ ${task.assignments && task.assignments.length > 0 ? function renderTasksInContainer(containerId, tasksArray) { const container = document.getElementById(containerId); if (!container) return; - - if (!tasksArray || tasksArray.length === 0) { + + let filteredTasks = tasksArray; + if (containerId === 'runtasks-list' && window.currentTaskView === 'assigned_to_me' && currentUser) { + filteredTasks = tasksArray.filter(task => { + const myAssignment = task.assignments?.find(a => parseInt(a.user_id) === currentUser.id); + console.log('Task', task.id, 'myAssignment status:', myAssignment?.status); + return !myAssignment || myAssignment.status !== 'completed'; + }); + } + + if (!filteredTasks || filteredTasks.length === 0) { container.innerHTML = '
Задачи не найдены
'; return; } - container.innerHTML = tasksArray.map(task => { + container.innerHTML = filteredTasks.map(task => { const isExpanded = expandedTasks.has(task.id); const overallStatus = getTaskOverallStatus(task); const statusClass = getStatusClass(overallStatus);