mirror of
https://github.com/Ed1s0nZ/CyberStrikeAI.git
synced 2026-06-29 17:30:14 +02:00
Add files via upload
This commit is contained in:
@@ -7330,6 +7330,11 @@ async function renameConversation() {
|
||||
}
|
||||
}
|
||||
|
||||
// 同步更新顶栏正在运行的任务名称
|
||||
if (typeof updateActiveTaskConversationTitle === 'function') {
|
||||
updateActiveTaskConversationTitle(convId, newTitle.trim());
|
||||
}
|
||||
|
||||
// 重新加载对话列表
|
||||
loadConversationsWithGroups();
|
||||
} catch (error) {
|
||||
|
||||
@@ -3440,6 +3440,28 @@ async function loadActiveTasks(showErrors = false) {
|
||||
}
|
||||
}
|
||||
|
||||
function getActiveTaskDisplayName(task) {
|
||||
const _t = function (k) { return typeof window.t === 'function' ? window.t(k) : k; };
|
||||
const unnamedTaskText = _t('tasks.unnamedTask');
|
||||
if (!task) return unnamedTaskText;
|
||||
const title = (task.title || '').trim();
|
||||
if (title) return title;
|
||||
const message = (task.message || '').trim();
|
||||
return message || unnamedTaskText;
|
||||
}
|
||||
|
||||
function updateActiveTaskConversationTitle(conversationId, newTitle) {
|
||||
const bar = document.getElementById('active-tasks-bar');
|
||||
if (!bar || !conversationId) return;
|
||||
const title = (newTitle || '').trim();
|
||||
if (!title) return;
|
||||
bar.querySelectorAll('.active-task-item[data-conversation-id="' + conversationId + '"] .active-task-message')
|
||||
.forEach(function (el) {
|
||||
el.textContent = title;
|
||||
});
|
||||
}
|
||||
window.updateActiveTaskConversationTitle = updateActiveTaskConversationTitle;
|
||||
|
||||
function renderActiveTasks(tasks) {
|
||||
const bar = document.getElementById('active-tasks-bar');
|
||||
if (!bar) return;
|
||||
@@ -3500,13 +3522,17 @@ function renderActiveTasks(tasks) {
|
||||
};
|
||||
const statusText = statusMap[task.status] || _t('tasks.statusRunning');
|
||||
const isFinalStatus = ['failed', 'timeout', 'cancelled', 'completed'].includes(task.status);
|
||||
const unnamedTaskText = _t('tasks.unnamedTask');
|
||||
const taskDisplayName = getActiveTaskDisplayName(task);
|
||||
const stopTaskBtnText = _t('tasks.stopTask');
|
||||
|
||||
if (task && task.conversationId) {
|
||||
item.dataset.conversationId = task.conversationId;
|
||||
}
|
||||
|
||||
item.innerHTML = `
|
||||
<div class="active-task-info">
|
||||
<span class="active-task-status">${statusText}</span>
|
||||
<span class="active-task-message">${escapeHtml(task.message || unnamedTaskText)}</span>
|
||||
<span class="active-task-message">${escapeHtml(taskDisplayName)}</span>
|
||||
</div>
|
||||
<div class="active-task-actions">
|
||||
${timeText ? `<span class="active-task-time">${timeText}</span>` : ''}
|
||||
|
||||
@@ -181,7 +181,7 @@ function updateCompletedTasksHistory(currentTasks) {
|
||||
|
||||
tasksState.completedTasksHistory.push({
|
||||
conversationId: task.conversationId,
|
||||
message: task.message || '未命名任务',
|
||||
message: task.title || task.message || '未命名任务',
|
||||
startedAt: task.startedAt,
|
||||
status: finalStatus,
|
||||
completedAt: new Date().toISOString()
|
||||
@@ -537,7 +537,7 @@ function renderTaskItem(task, statusMap, isHistory = false) {
|
||||
` : '<div class="task-checkbox-placeholder"></div>'}
|
||||
<span class="task-status ${status.class}">${status.text}</span>
|
||||
${isHistory ? '<span class="task-history-badge" title="' + _t('tasks.historyBadge') + '">📜</span>' : ''}
|
||||
<span class="task-message" title="${escapeHtml(task.message || _t('tasks.unnamedTask'))}">${escapeHtml(task.message || _t('tasks.unnamedTask'))}</span>
|
||||
<span class="task-message" title="${escapeHtml((task.title || task.message || _t('tasks.unnamedTask')))}">${escapeHtml((task.title || task.message || _t('tasks.unnamedTask')))}</span>
|
||||
</div>
|
||||
<div class="task-actions">
|
||||
${duration ? `<span class="task-duration" title="${_t('tasks.duration')}">⏱ ${duration}</span>` : ''}
|
||||
|
||||
Reference in New Issue
Block a user