This commit is contained in:
2026-02-13 15:59:21 +05:00
parent 59f5ac5741
commit 28eae745d4
3 changed files with 83 additions and 4 deletions

View File

@@ -195,7 +195,48 @@
</button>
</form>
</section>
<div id="mytasks-section" class="section">
<h2><i class="fas fa-user-edit"></i> Мои задачи (как автор)</h2>
<div class="filters" style="margin-bottom: 20px;">
<div class="filter-group">
<label for="mytasks-status-filter"><i class="fas fa-filter"></i> Статус:</label>
<select id="mytasks-status-filter" onchange="filterMyTasks()">
<option value="all">Все статусы</option>
<option value="assigned">Назначена</option>
<option value="in_progress">В работе</option>
<option value="rework">На доработке</option>
<option value="overdue">Просрочена</option>
<option value="completed">Выполнена</option>
</select>
</div>
<div class="filter-group" style="flex-grow: 1;">
<label for="mytasks-search"><i class="fas fa-search"></i> Поиск:</label>
<input type="text" id="mytasks-search" placeholder="Поиск по названию..." oninput="filterMyTasks()">
</div>
</div>
<div id="mytasks-list" class="tasks-container"></div>
</div>
<div id="runtasks-section" class="section">
<h2><i class="fas fa-user-check"></i> Задачи для исполнения</h2>
<div class="filters" style="margin-bottom: 20px;">
<div class="filter-group">
<label for="runtasks-status-filter"><i class="fas fa-filter"></i> Статус:</label>
<select id="runtasks-status-filter" onchange="filterRunTasks()">
<option value="all">Все статусы</option>
<option value="assigned">Назначена</option>
<option value="in_progress">В работе</option>
<option value="rework">На доработке</option>
<option value="overdue">Просрочена</option>
<option value="completed">Выполнена</option>
</select>
</div>
<div class="filter-group" style="flex-grow: 1;">
<label for="runtasks-search"><i class="fas fa-search"></i> Поиск:</label>
<input type="text" id="runtasks-search" placeholder="Поиск по названию..." oninput="filterRunTasks()">
</div>
</div>
<div id="runtasks-list" class="tasks-container"></div>
</div>
<section id="logs-section" class="section">
<h2><i class="fas fa-history"></i> Лог активности</h2>
<div id="logs-list"></div>

View File

@@ -50,6 +50,24 @@ function createNavigation() {
}
];
if (currentUser && currentUser.role === 'admin') {
navButtons.push({
onclick: "showSection('mytasks')",
className: "nav-btn my-tasks",
icon: "fas fa-user-edit",
text: "Мои задачи (Автор)",
id: "my-tasks-btn"
});
}
if (currentUser && currentUser.role === 'admin') {
navButtons.push({
onclick: "showSection('runtasks')",
className: "nav-btn assigned-to-me",
icon: "fas fa-user-check",
text: "Мои задачи (Исполнитель)",
id: "kanban-btn"
});
}
// 👇 Кнопка админ-панели ТОЛЬКО для admin 👇
if (currentUser && currentUser.role === 'admin') {
navButtons.push({

View File

@@ -13,6 +13,12 @@ function showSection(sectionName) {
loadActivityLogs();
} else if (sectionName === 'kanban') {
loadKanbanTasks();
} else if (sectionName === 'mytasks') {
console.log('загружаю loadMyTasks');
loadTasks();
} else if (sectionName === 'runtasks') {
console.log('загружаю loadRunTasks');
loadTasks();
}
// Загрузка профиля при переходе в личный кабинет
@@ -379,7 +385,7 @@ function filterAssignments(taskId) {
filterCount.textContent = `${visibleCount} из ${assignments.length} исполнителей`;
}
}
// поддержка новых контейнеров
function toggleTask(taskId) {
if (expandedTasks.has(taskId)) {
expandedTasks.delete(taskId);
@@ -387,8 +393,22 @@ function toggleTask(taskId) {
expandedTasks.add(taskId);
loadTaskFiles(taskId);
}
// Определяем, какой контейнер сейчас активен
const activeSection = document.querySelector('.section.active');
if (activeSection) {
const sectionId = activeSection.id;
if (sectionId === 'mytasks-section') {
renderTasksInContainer('mytasks-list');
} else if (sectionId === 'runtasks-section') {
renderTasksInContainer('runtasks-list');
} else if (sectionId === 'tasks-section') {
renderTasks();
}
} else {
renderTasks();
}
}
function getTimeLeftInfo(task) {
if (!task.due_date || task.closed_at) return null;