feat&fix: update paths in configuration, enhance error handling, and improve UI elements
This commit is contained in:
@@ -5,6 +5,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
document.getElementById('total-tasks').parentElement.addEventListener('click', () => setTaskFilter('all'));
|
||||
document.getElementById('active-tasks').parentElement.addEventListener('click', () => setTaskFilter('active'));
|
||||
document.getElementById('completed-tasks').parentElement.addEventListener('click', () => setTaskFilter('completed'));
|
||||
document.getElementById('error-tasks').parentElement.addEventListener('click', () => setTaskFilter('error'));
|
||||
});
|
||||
|
||||
let allTaskData = null;
|
||||
@@ -49,6 +50,8 @@ function setTaskFilter(filter) {
|
||||
document.getElementById('active-tasks').parentElement.classList.add('selected');
|
||||
} else if (filter === 'completed') {
|
||||
document.getElementById('completed-tasks').parentElement.classList.add('selected');
|
||||
} else if (filter === 'error') {
|
||||
document.getElementById('error-tasks').parentElement.classList.add('selected');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,14 +60,17 @@ function updateStatistics(data) {
|
||||
let totalTasks = 0;
|
||||
let activeTasks = 0;
|
||||
let completedTasks = 0;
|
||||
let errorTasks = 0;
|
||||
|
||||
Object.entries(data).forEach(([taskType, tasks]) => {
|
||||
totalTasks += tasks.length;
|
||||
tasks.forEach(task => {
|
||||
if (task.status.status === 'Running' || task.status.status === 'Preparing' || task.status.status === 'Initializing') {
|
||||
activeTasks++;
|
||||
} else if (task.status.status === 'Done') {
|
||||
} else if (task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)') {
|
||||
completedTasks++;
|
||||
} else if (task.status.status === 'Error') {
|
||||
errorTasks++;
|
||||
}
|
||||
});
|
||||
});
|
||||
@@ -72,6 +78,19 @@ function updateStatistics(data) {
|
||||
document.getElementById('total-tasks').textContent = totalTasks;
|
||||
document.getElementById('active-tasks').textContent = activeTasks;
|
||||
document.getElementById('completed-tasks').textContent = completedTasks;
|
||||
document.getElementById('error-tasks').textContent = errorTasks;
|
||||
|
||||
// 高亮显示当前选中的统计卡片
|
||||
document.querySelectorAll('.stat-card').forEach(card => card.classList.remove('selected'));
|
||||
if (currentFilter === 'all') {
|
||||
document.getElementById('total-tasks').parentElement.classList.add('selected');
|
||||
} else if (currentFilter === 'active') {
|
||||
document.getElementById('active-tasks').parentElement.classList.add('selected');
|
||||
} else if (currentFilter === 'completed') {
|
||||
document.getElementById('completed-tasks').parentElement.classList.add('selected');
|
||||
} else if (currentFilter === 'error') {
|
||||
document.getElementById('error-tasks').parentElement.classList.add('selected');
|
||||
}
|
||||
}
|
||||
|
||||
function renderTasks(data) {
|
||||
@@ -86,7 +105,9 @@ function renderTasks(data) {
|
||||
if (currentFilter === 'active') {
|
||||
filteredTasks = tasks.filter(task => ['Running', 'Preparing', 'Initializing'].includes(task.status.status));
|
||||
} else if (currentFilter === 'completed') {
|
||||
filteredTasks = tasks.filter(task => task.status.status === 'Done');
|
||||
filteredTasks = tasks.filter(task => task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)');
|
||||
} else if (currentFilter === 'error') {
|
||||
filteredTasks = tasks.filter(task => task.status.status === 'Error');
|
||||
}
|
||||
if (filteredTasks.length > 0) {
|
||||
filteredData[taskType] = filteredTasks;
|
||||
@@ -107,7 +128,7 @@ function renderTasks(data) {
|
||||
tasks.forEach(task => {
|
||||
if (task.status.status === 'Running' || task.status.status === 'Preparing' || task.status.status === 'Initializing') {
|
||||
runningCount++;
|
||||
} else if (task.status.status === 'Done') {
|
||||
} else if (task.status.status === 'Done' || task.status.status === 'Done (Message Exit)' || task.status.status === 'Done (Max Steps)') {
|
||||
completedCount++;
|
||||
} else if (task.status.status === 'Error') {
|
||||
errorCount++;
|
||||
@@ -146,6 +167,12 @@ function renderTasks(data) {
|
||||
noTasks.innerHTML = '<i class="fas fa-info-circle"></i> No Tasks Available';
|
||||
tasksContainer.appendChild(noTasks);
|
||||
} else {
|
||||
// Add scrolling for large task lists
|
||||
if (tasks.length > 10) {
|
||||
tasksContainer.style.maxHeight = '600px';
|
||||
tasksContainer.style.overflowY = 'auto';
|
||||
}
|
||||
|
||||
tasks.forEach(task => {
|
||||
const taskCard = document.createElement('div');
|
||||
taskCard.className = 'task-card';
|
||||
@@ -178,6 +205,8 @@ function renderTasks(data) {
|
||||
statusIcon = 'fa-running';
|
||||
break;
|
||||
case 'Done':
|
||||
case 'Done (Message Exit)':
|
||||
case 'Done (Max Steps)':
|
||||
statusClass = 'status-completed';
|
||||
statusIcon = 'fa-check-circle';
|
||||
break;
|
||||
@@ -185,6 +214,10 @@ function renderTasks(data) {
|
||||
statusClass = 'status-error';
|
||||
statusIcon = 'fa-exclamation-circle';
|
||||
break;
|
||||
default:
|
||||
statusClass = 'status-unknown';
|
||||
statusIcon = 'fa-question-circle';
|
||||
break;
|
||||
}
|
||||
|
||||
taskStatus.classList.add(statusClass);
|
||||
@@ -202,7 +235,7 @@ function renderTasks(data) {
|
||||
|
||||
if (task.status.progress > 0) {
|
||||
const progressText = document.createElement('div');
|
||||
progressText.innerHTML = `<i class="fas fa-chart-line"></i> Progress: ${task.status.progress} step(s)`;
|
||||
progressText.innerHTML = `<i class="fas fa-chart-line"></i> Progress: ${task.status.progress}/${task.status.max_steps} step(s)`;
|
||||
taskProgress.appendChild(progressText);
|
||||
|
||||
const progressBar = document.createElement('div');
|
||||
|
||||
Reference in New Issue
Block a user