Simplify pipeline status dialog by consolidating message sections

• Remove separate latest message section
• Combine into single pipeline messages area
• Add overflow-x-hidden for better display
• Change break-words to break-all
• Update translations across all locales

(cherry picked from commit 2476d6b7f8)
This commit is contained in:
yangdx 2025-10-25 03:34:54 +08:00 committed by Raphaël MANSUY
parent e4be3549c3
commit ec9b4862d0
6 changed files with 125 additions and 105 deletions

View file

@ -172,25 +172,17 @@ export default function PipelineStatusDialog({
</div>
</div>
{/* Latest Message */}
<div className="space-y-2">
<div className="text-sm font-medium">{t('documentPanel.pipelineStatus.latestMessage')}:</div>
<div className="font-mono text-xs rounded-md bg-zinc-800 text-zinc-100 p-3 whitespace-pre-wrap break-words">
{status?.latest_message || '-'}
</div>
</div>
{/* History Messages */}
<div className="space-y-2">
<div className="text-sm font-medium">{t('documentPanel.pipelineStatus.historyMessages')}:</div>
<div className="text-sm font-medium">{t('documentPanel.pipelineStatus.pipelineMessages')}:</div>
<div
ref={historyRef}
onScroll={handleScroll}
className="font-mono text-xs rounded-md bg-zinc-800 text-zinc-100 p-3 overflow-y-auto min-h-[7.5em] max-h-[40vh]"
className="font-mono text-xs rounded-md bg-zinc-800 text-zinc-100 p-3 overflow-y-auto overflow-x-hidden min-h-[7.5em] max-h-[40vh]"
>
{status?.history_messages?.length ? (
status.history_messages.map((msg, idx) => (
<div key={idx} className="whitespace-pre-wrap break-words">{msg}</div>
<div key={idx} className="whitespace-pre-wrap break-all">{msg}</div>
))
) : '-'}
</div>

View file

@ -70,6 +70,7 @@
"confirmButton": "نعم",
"deleteFileOption": "حذف الملفات المرفوعة أيضًا",
"deleteFileTooltip": "حدد هذا الخيار لحذف الملفات المرفوعة المقابلة على الخادم أيضًا",
"deleteLLMCacheOption": "حذف ذاكرة LLM المؤقتة للاستخراج أيضًا",
"success": "تم بدء تشغيل خط معالجة حذف المستندات بنجاح",
"failed": "فشل حذف المستندات:\n{{message}}",
"error": "فشل حذف المستندات:\n{{error}}",
@ -97,7 +98,7 @@
"error": "فشل رفع بعض الملفات"
},
"generalError": "فشل الرفع\n{{error}}",
"fileTypes": "الأنواع المدعومة: TXT، MD، DOCX، PDF، PPTX، RTF، ODT، EPUB، HTML، HTM، TEX، JSON، XML، YAML، YML، CSV، LOG، CONF، INI، PROPERTIES، SQL، BAT، SH، C، CPP، PY، JAVA، JS، TS، SWIFT، GO، RB، PHP، CSS، SCSS، LESS",
"fileTypes": "الأنواع المدعومة: TXT، MD، DOCX، PDF، PPTX، XLSX، RTF، ODT، EPUB، HTML، HTM، TEX، JSON، XML، YAML، YML، CSV، LOG، CONF، INI، PROPERTIES، SQL، BAT، SH، C، CPP، PY، JAVA، JS، TS، SWIFT، GO، RB، PHP، CSS، SCSS، LESS",
"fileUploader": {
"singleFileLimit": "لا يمكن رفع أكثر من ملف واحد في المرة الواحدة",
"maxFilesLimit": "لا يمكن رفع أكثر من {{count}} ملفات",
@ -114,19 +115,16 @@
"documentManager": {
"title": "إدارة المستندات",
"scanButton": "مسح ضوئي",
"scanTooltip": "مسح المستندات ضوئيًا في مجلد الإدخال",
"scanTooltip": "مسح ومعالجة المستندات في مجلد الإدخال، وإعادة معالجة جميع المستندات الفاشلة أيضًا",
"retryFailedButton": "إعادة المحاولة",
"retryFailedTooltip": "إعادة معالجة جميع المستندات الفاشلة",
"refreshTooltip": "إعادة تعيين قائمة المستندات",
"pipelineStatusButton": "حالة خط المعالجة",
"pipelineStatusTooltip": "عرض حالة خط المعالجة",
"pipelineStatusButton": "خط المعالجة",
"pipelineStatusTooltip": "عرض حالة خط معالجة المستندات",
"uploadedTitle": "المستندات المرفوعة",
"uploadedDescription": "قائمة المستندات المرفوعة وحالاتها.",
"loading": "جاري تحميل المستندات...",
"emptyTitle": "لا توجد مستندات",
"emptyDescription": "لا توجد مستندات مرفوعة بعد.",
"emptyWithPipelineTitle": "مستندات قيد المعالجة",
"emptyWithPipelineDescription": "خط المعالجة مشغول. ربما هناك مستندات قيد المعالجة.",
"scanForDocuments": "مسح المستندات",
"viewPipeline": "عرض خط المعالجة",
"columns": {
"id": "المعرف",
"fileName": "اسم الملف",
@ -142,6 +140,7 @@
"status": {
"all": "الكل",
"completed": "مكتمل",
"preprocessed": "مُعالج مسبقًا",
"processing": "قيد المعالجة",
"pending": "معلق",
"failed": "فشل"
@ -158,17 +157,24 @@
"hideFileNameTooltip": "إخفاء اسم الملف"
},
"pipelineStatus": {
"title": "حالة خط المعالجة",
"busy": "خط المعالجة مشغول",
"requestPending": "الطلب معلق",
"title": "حالة خط الأنابيب",
"busy": "خط الأنابيب مشغول",
"requestPending": "طلب معلق",
"cancellationRequested": "طلب الإلغاء",
"jobName": "اسم المهمة",
"startTime": "وقت البدء",
"progress": "التقدم",
"unit": "دفعة",
"latestMessage": "آخر رسالة",
"historyMessages": "سجل الرسائل",
"pipelineMessages": "رسائل خط الأنابيب",
"cancelButton": "إلغاء",
"cancelTooltip": "إلغاء معالجة خط الأنابيب",
"cancelInProgress": "الإلغاء قيد التقدم...",
"pipelineNotRunning": "خط الأنابيب غير قيد التشغيل",
"cancelSuccess": "تم طلب إلغاء خط الأنابيب",
"cancelFailed": "فشل إلغاء خط الأنابيب\n{{error}}",
"cancelNotBusy": "خط الأنابيب غير قيد التشغيل، لا حاجة للإلغاء",
"errors": {
"fetchFailed": "فشل في جلب حالة خط المعالجة\n{{error}}"
"fetchFailed": "فشل في جلب حالة خط الأنابيب\n{{error}}"
}
}
},
@ -320,10 +326,10 @@
"description": "الوصف",
"entity_id": "الاسم",
"entity_type": "النوع",
"source_id": "معرف المصدر",
"source_id": "C-ID",
"Neighbour": "الجار",
"file_path": "المصدر",
"keywords": "الكلمات الرئيسية",
"file_path": "File",
"keywords": "Keyword",
"weight": "الوزن"
}
},

View file

@ -70,6 +70,7 @@
"confirmButton": "YES",
"deleteFileOption": "Also delete uploaded files",
"deleteFileTooltip": "Check this option to also delete the corresponding uploaded files on the server",
"deleteLLMCacheOption": "Also delete extracted LLM cache",
"success": "Document deletion pipeline started successfully",
"failed": "Delete Documents Failed:\n{{message}}",
"error": "Delete Documents Failed:\n{{error}}",
@ -114,17 +115,16 @@
"documentManager": {
"title": "Document Management",
"scanButton": "Scan",
"scanTooltip": "Scan documents in input folder",
"scanTooltip": "Scan and process documents in input folder, and also reprocess all failed documents",
"retryFailedButton": "Retry",
"retryFailedTooltip": "Retry processing all failed documents",
"refreshTooltip": "Reset document list",
"pipelineStatusButton": "Pipeline Status",
"pipelineStatusTooltip": "View pipeline status",
"pipelineStatusButton": "Pipeline",
"pipelineStatusTooltip": "View document processing pipeline status",
"uploadedTitle": "Uploaded Documents",
"uploadedDescription": "List of uploaded documents and their statuses.",
"loading": "Loading documents...",
"loadingHint": "Fetching document list from the knowledge base",
"emptyTitle": "No Documents Yet",
"emptyDescription": "This knowledge base doesn't have any documents. Upload documents or scan the input folder to get started.",
"emptyHint": "Use the 'Scan' button above to detect new documents in the input folder",
"emptyTitle": "No Documents",
"emptyDescription": "There are no uploaded documents yet.",
"columns": {
"id": "ID",
"fileName": "File Name",
@ -140,6 +140,7 @@
"status": {
"all": "All",
"completed": "Completed",
"preprocessed": "Preprocessed",
"processing": "Processing",
"pending": "Pending",
"failed": "Failed"
@ -159,18 +160,23 @@
"title": "Pipeline Status",
"busy": "Pipeline Busy",
"requestPending": "Request Pending",
"cancellationRequested": "Cancellation Requested",
"jobName": "Job Name",
"startTime": "Start Time",
"progress": "Progress",
"unit": "batch",
"latestMessage": "Latest Message",
"historyMessages": "History Messages",
"unit": "Batch",
"pipelineMessages": "Pipeline Messages",
"cancelButton": "Cancel",
"cancelTooltip": "Cancel pipeline processing",
"cancelInProgress": "Cancellation in progress...",
"pipelineNotRunning": "Pipeline not running",
"cancelSuccess": "Pipeline cancellation requested",
"cancelFailed": "Failed to cancel pipeline\n{{error}}",
"cancelNotBusy": "Pipeline is not running, no need to cancel",
"errors": {
"fetchFailed": "Failed to get pipeline status\n{{error}}"
"fetchFailed": "Failed to fetch pipeline status\n{{error}}"
}
},
"selectTenant": "Please Select a Tenant and Knowledge Base",
"selectTenantDescription": "Choose a tenant and knowledge base from the dropdowns above to view and manage documents."
}
},
"graphPanel": {
"dataIsTruncated": "Graph data is truncated to Max Nodes",
@ -320,9 +326,9 @@
"description": "Description",
"entity_id": "Name",
"entity_type": "Type",
"source_id": "SrcID",
"source_id": "C-ID",
"Neighbour": "Neigh",
"file_path": "Source",
"file_path": "File",
"keywords": "Keys",
"weight": "Weight"
}
@ -338,14 +344,14 @@
},
"search": {
"placeholder": "Search nodes in page...",
"message": "And {count} others"
"message": "And {{count}} others"
},
"graphLabels": {
"selectTooltip": "Get subgraph of a node (label)",
"noLabels": "No matching nodes found",
"label": "Search node name",
"placeholder": "Search node name...",
"andOthers": "And {count} others",
"andOthers": "And {{count}} others",
"refreshGlobalTooltip": "Refresh global graph data and reset search history",
"refreshCurrentLabelTooltip": "Refresh current page graph data",
"refreshingTooltip": "Refreshing data..."
@ -441,4 +447,4 @@
"nextPage": "Next Page",
"lastPage": "Last Page"
}
}
}

View file

@ -70,6 +70,7 @@
"confirmButton": "OUI",
"deleteFileOption": "Supprimer également les fichiers téléchargés",
"deleteFileTooltip": "Cochez cette option pour supprimer également les fichiers téléchargés correspondants sur le serveur",
"deleteLLMCacheOption": "Supprimer également le cache LLM d'extraction",
"success": "Pipeline de suppression de documents démarré avec succès",
"failed": "Échec de la suppression des documents :\n{{message}}",
"error": "Échec de la suppression des documents :\n{{error}}",
@ -97,7 +98,7 @@
"error": "Certains fichiers n'ont pas pu être téléchargés"
},
"generalError": "Échec du téléchargement\n{{error}}",
"fileTypes": "Types pris en charge : TXT, MD, DOCX, PDF, PPTX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS",
"fileTypes": "Types pris en charge : TXT, MD, DOCX, PDF, PPTX, XLSX, RTF, ODT, EPUB, HTML, HTM, TEX, JSON, XML, YAML, YML, CSV, LOG, CONF, INI, PROPERTIES, SQL, BAT, SH, C, CPP, PY, JAVA, JS, TS, SWIFT, GO, RB, PHP, CSS, SCSS, LESS",
"fileUploader": {
"singleFileLimit": "Impossible de télécharger plus d'un fichier à la fois",
"maxFilesLimit": "Impossible de télécharger plus de {{count}} fichiers",
@ -114,19 +115,16 @@
"documentManager": {
"title": "Gestion des documents",
"scanButton": "Scanner",
"scanTooltip": "Scanner les documents dans le dossier d'entrée",
"scanTooltip": "Scanner et traiter les documents dans le dossier d'entrée, et retraiter également tous les documents échoués",
"retryFailedButton": "Réessayer",
"retryFailedTooltip": "Réessayer le traitement de tous les documents échoués",
"refreshTooltip": "Réinitialiser la liste des documents",
"pipelineStatusButton": "État du Pipeline",
"pipelineStatusTooltip": "Voir l'état du pipeline",
"pipelineStatusButton": "Pipeline",
"pipelineStatusTooltip": "Voir l'état du pipeline de traitement des documents",
"uploadedTitle": "Documents téléchargés",
"uploadedDescription": "Liste des documents téléchargés et leurs statuts.",
"loading": "Chargement des documents...",
"emptyTitle": "Aucun document",
"emptyDescription": "Il n'y a pas encore de documents téléchargés.",
"emptyWithPipelineTitle": "Documents en cours de traitement",
"emptyWithPipelineDescription": "Le pipeline est occupé. Des documents sont peut-être en cours de traitement.",
"scanForDocuments": "Scanner les documents",
"viewPipeline": "Voir le pipeline",
"columns": {
"id": "ID",
"fileName": "Nom du fichier",
@ -142,6 +140,7 @@
"status": {
"all": "Tous",
"completed": "Terminé",
"preprocessed": "Prétraité",
"processing": "En traitement",
"pending": "En attente",
"failed": "Échoué"
@ -159,14 +158,21 @@
},
"pipelineStatus": {
"title": "État du Pipeline",
"busy": "Pipeline occupé",
"requestPending": "Requête en attente",
"jobName": "Nom du travail",
"startTime": "Heure de début",
"progress": "Progression",
"unit": "lot",
"latestMessage": "Dernier message",
"historyMessages": "Historique des messages",
"busy": "Pipeline Occupé",
"requestPending": "Demande en Attente",
"cancellationRequested": "Annulation Demandée",
"jobName": "Nom du Travail",
"startTime": "Heure de Début",
"progress": "Progrès",
"unit": "Lot",
"pipelineMessages": "Messages de Pipeline",
"cancelButton": "Annuler",
"cancelTooltip": "Annuler le traitement du pipeline",
"cancelInProgress": "Annulation en cours...",
"pipelineNotRunning": "Le pipeline n'est pas en cours d'exécution",
"cancelSuccess": "Annulation du pipeline demandée",
"cancelFailed": "Échec de l'annulation du pipeline\n{{error}}",
"cancelNotBusy": "Le pipeline n'est pas en cours d'exécution, pas besoin d'annuler",
"errors": {
"fetchFailed": "Échec de la récupération de l'état du pipeline\n{{error}}"
}
@ -320,9 +326,9 @@
"description": "Description",
"entity_id": "Nom",
"entity_type": "Type",
"source_id": "ID source",
"source_id": "C-ID",
"Neighbour": "Voisin",
"file_path": "Source",
"file_path": "File",
"keywords": "Keys",
"weight": "Poids"
}

View file

@ -70,6 +70,7 @@
"confirmButton": "确定",
"deleteFileOption": "同时删除上传文件",
"deleteFileTooltip": "选中此选项将同时删除服务器上对应的上传文件",
"deleteLLMCacheOption": "同时删除实体关系抽取 LLM 缓存",
"success": "文档删除流水线启动成功",
"failed": "删除文档失败:\n{{message}}",
"error": "删除文档失败:\n{{error}}",
@ -114,21 +115,16 @@
"documentManager": {
"title": "文档管理",
"scanButton": "扫描",
"scanTooltip": "扫描输入目录中的文档",
"scanTooltip": "扫描处理输入目录中的文档,同时重新处理所有失败的文档",
"retryFailedButton": "重试",
"retryFailedTooltip": "重新处理所有失败的文档",
"refreshTooltip": "复位文档清单",
"pipelineStatusButton": "流水线状态",
"pipelineStatusTooltip": "查看流水线状态",
"pipelineStatusButton": "流水线",
"pipelineStatusTooltip": "查看文档处理流水线状态",
"uploadedTitle": "已上传文档",
"uploadedDescription": "已上传文档列表及其状态",
"loading": "正在加载文档...",
"loadingHint": "正在从知识库获取文档列表",
"emptyTitle": "暂无文档",
"emptyDescription": "此知识库还没有任何文档。请上传文档或扫描输入目录以开始。",
"emptyHint": "使用上方的「扫描」按钮检测输入目录中的新文档",
"emptyWithPipelineTitle": "处理中的文档",
"emptyWithPipelineDescription": "流水线正忙。可能有文档正在处理中。",
"scanForDocuments": "扫描文档",
"viewPipeline": "查看流水线",
"emptyTitle": "无文档",
"emptyDescription": "还没有上传任何文档",
"columns": {
"id": "ID",
"fileName": "文件名",
@ -144,6 +140,7 @@
"status": {
"all": "全部",
"completed": "已完成",
"preprocessed": "预处理",
"processing": "处理中",
"pending": "等待中",
"failed": "失败"
@ -163,12 +160,19 @@
"title": "流水线状态",
"busy": "流水线忙碌",
"requestPending": "待处理请求",
"cancellationRequested": "取消请求",
"jobName": "作业名称",
"startTime": "开始时间",
"progress": "进度",
"unit": "批",
"latestMessage": "最新消息",
"historyMessages": "历史消息",
"pipelineMessages": "流水线消息",
"cancelButton": "中断",
"cancelTooltip": "中断流水线处理",
"cancelInProgress": "取消请求进行中...",
"pipelineNotRunning": "流水线未运行",
"cancelSuccess": "流水线中断请求已发送",
"cancelFailed": "中断流水线失败\n{{error}}",
"cancelNotBusy": "流水线未运行,无需中断",
"errors": {
"fetchFailed": "获取流水线状态失败\n{{error}}"
}
@ -322,9 +326,9 @@
"description": "描述",
"entity_id": "名称",
"entity_type": "类型",
"source_id": "信源ID",
"source_id": "C-ID",
"Neighbour": "邻接",
"file_path": "信源",
"file_path": "文件",
"keywords": "Keys",
"weight": "权重"
}
@ -340,14 +344,14 @@
},
"search": {
"placeholder": "页面内搜索节点...",
"message": "还有 {count} 个"
"message": "还有 {{count}} 个"
},
"graphLabels": {
"selectTooltip": "获取节点(标签)子图",
"noLabels": "未找到匹配的节点",
"label": "搜索节点名称",
"placeholder": "搜索节点名称...",
"andOthers": "还有 {count} 个",
"andOthers": "还有 {{count}} 个",
"refreshGlobalTooltip": "刷新全图数据和重置搜索历史",
"refreshCurrentLabelTooltip": "刷新当前页面图数据",
"refreshingTooltip": "正在刷新数据..."

View file

@ -70,6 +70,7 @@
"confirmButton": "確定",
"deleteFileOption": "同時刪除上傳檔案",
"deleteFileTooltip": "選取此選項將同時刪除伺服器上對應的上傳檔案",
"deleteLLMCacheOption": "同時刪除實體關係擷取 LLM 快取",
"success": "文件刪除流水線啟動成功",
"failed": "刪除文件失敗:\n{{message}}",
"error": "刪除文件失敗:\n{{error}}",
@ -114,19 +115,16 @@
"documentManager": {
"title": "文件管理",
"scanButton": "掃描",
"scanTooltip": "掃描輸入目錄中的文件",
"scanTooltip": "掃描處理輸入目錄中的文件,同時重新處理所有失敗的文件",
"retryFailedButton": "重試",
"retryFailedTooltip": "重新處理所有失敗的文件",
"refreshTooltip": "重設文件清單",
"pipelineStatusButton": "pipeline 狀態",
"pipelineStatusTooltip": "查看pipeline 狀態",
"pipelineStatusButton": "管線狀態",
"pipelineStatusTooltip": "查看文件處理管線狀態",
"uploadedTitle": "已上傳文件",
"uploadedDescription": "已上傳文件清單及其狀態",
"loading": "正在載入文件...",
"emptyTitle": "無文件",
"emptyDescription": "尚未上傳任何文件",
"emptyWithPipelineTitle": "處理中的文件",
"emptyWithPipelineDescription": "Pipeline 正忙。可能有文件正在處理中。",
"scanForDocuments": "掃描文件",
"viewPipeline": "查看 Pipeline",
"columns": {
"id": "ID",
"fileName": "檔案名稱",
@ -142,6 +140,7 @@
"status": {
"all": "全部",
"completed": "已完成",
"preprocessed": "預處理",
"processing": "處理中",
"pending": "等待中",
"failed": "失敗"
@ -158,17 +157,24 @@
"hideFileNameTooltip": "隱藏檔案名稱"
},
"pipelineStatus": {
"title": "pipeline 狀態",
"busy": "pipeline 忙碌中",
"title": "流水線狀態",
"busy": "流水線忙碌",
"requestPending": "待處理請求",
"jobName": "工作名稱",
"cancellationRequested": "取消請求",
"jobName": "作業名稱",
"startTime": "開始時間",
"progress": "進度",
"unit": "梯次",
"latestMessage": "最新訊息",
"historyMessages": "歷史訊息",
"unit": "批",
"pipelineMessages": "流水線消息",
"cancelButton": "中斷",
"cancelTooltip": "中斷流水線處理",
"cancelInProgress": "取消請求進行中...",
"pipelineNotRunning": "流水線未運行",
"cancelSuccess": "流水線中斷請求已發送",
"cancelFailed": "中斷流水線失敗\n{{error}}",
"cancelNotBusy": "流水線未運行,無需中斷",
"errors": {
"fetchFailed": "取得pipeline 狀態失敗\n{{error}}"
"fetchFailed": "獲取流水線狀態失敗\n{{error}}"
}
}
},
@ -320,9 +326,9 @@
"description": "描述",
"entity_id": "名稱",
"entity_type": "類型",
"source_id": "來源ID",
"source_id": "C-ID",
"Neighbour": "鄰接",
"file_path": "來源",
"file_path": "檔案",
"keywords": "Keys",
"weight": "權重"
}
@ -338,14 +344,14 @@
},
"search": {
"placeholder": "頁面內搜尋節點...",
"message": "還有 {count} 個"
"message": "還有 {{count}} 個"
},
"graphLabels": {
"selectTooltip": "獲取節點(標籤)子圖",
"noLabels": "未找到匹配的節點",
"label": "搜尋節點名稱",
"placeholder": "搜尋節點名稱...",
"andOthers": "還有 {count} 個",
"andOthers": "還有 {{count}} 個",
"refreshGlobalTooltip": "重新整理全圖資料和重置搜尋歷史",
"refreshCurrentLabelTooltip": "重新整理目前頁面圖形資料",
"refreshingTooltip": "正在重新整理資料..."