меню
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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({
|
||||
|
||||
22
public/ui.js
22
public/ui.js
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user