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