Skip to content

Commit 81e3496

Browse files
committed
Add confirmation dialog for pipeline cancellation
1 parent 2476d6b commit 81e3496

File tree

6 files changed

+49
-3
lines changed

6 files changed

+49
-3
lines changed

‎lightrag_webui/src/components/documents/PipelineStatusDialog.tsx‎

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,17 @@ export default function PipelineStatusDialog({
3030
const [status, setStatus] = useState<PipelineStatusResponse | null>(null)
3131
const [position, setPosition] = useState<DialogPosition>('center')
3232
const [isUserScrolled, setIsUserScrolled] = useState(false)
33+
const [showCancelConfirm, setShowCancelConfirm] = useState(false)
3334
const historyRef = useRef<HTMLDivElement>(null)
3435

3536
// Reset position when dialog opens
3637
useEffect(() => {
3738
if (open) {
3839
setPosition('center')
3940
setIsUserScrolled(false)
41+
} else {
42+
// Reset confirmation dialog state when main dialog closes
43+
setShowCancelConfirm(false)
4044
}
4145
}, [open])
4246

@@ -81,8 +85,9 @@ export default function PipelineStatusDialog({
8185
return () => clearInterval(interval)
8286
}, [open, t])
8387

84-
// Handle cancel pipeline
85-
const handleCancelPipeline = async () => {
88+
// Handle cancel pipeline confirmation
89+
const handleConfirmCancel = async () => {
90+
setShowCancelConfirm(false)
8691
try {
8792
const result = await cancelPipeline()
8893
if (result.status === 'cancellation_requested') {
@@ -186,7 +191,7 @@ export default function PipelineStatusDialog({
186191
variant="destructive"
187192
size="sm"
188193
disabled={!canCancel}
189-
onClick={handleCancelPipeline}
194+
onClick={() => setShowCancelConfirm(true)}
190195
title={
191196
status?.cancellation_requested
192197
? t('documentPanel.pipelineStatus.cancelInProgress')
@@ -233,6 +238,32 @@ export default function PipelineStatusDialog({
233238
</div>
234239
</div>
235240
</DialogContent>
241+
242+
{/* Cancel Confirmation Dialog */}
243+
<Dialog open={showCancelConfirm} onOpenChange={setShowCancelConfirm}>
244+
<DialogContent className="sm:max-w-[425px]">
245+
<DialogHeader>
246+
<DialogTitle>{t('documentPanel.pipelineStatus.cancelConfirmTitle')}</DialogTitle>
247+
<DialogDescription>
248+
{t('documentPanel.pipelineStatus.cancelConfirmDescription')}
249+
</DialogDescription>
250+
</DialogHeader>
251+
<div className="flex justify-end gap-3 mt-4">
252+
<Button
253+
variant="outline"
254+
onClick={() => setShowCancelConfirm(false)}
255+
>
256+
{t('common.cancel')}
257+
</Button>
258+
<Button
259+
variant="destructive"
260+
onClick={handleConfirmCancel}
261+
>
262+
{t('documentPanel.pipelineStatus.cancelConfirmButton')}
263+
</Button>
264+
</div>
265+
</DialogContent>
266+
</Dialog>
236267
</Dialog>
237268
)
238269
}

‎lightrag_webui/src/locales/ar.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@
168168
"pipelineMessages": "رسائل خط الأنابيب",
169169
"cancelButton": "إلغاء",
170170
"cancelTooltip": "إلغاء معالجة خط الأنابيب",
171+
"cancelConfirmTitle": "تأكيد إلغاء خط الأنابيب",
172+
"cancelConfirmDescription": "سيؤدي هذا الإجراء إلى إيقاف معالجة خط الأنابيب الجارية. هل أنت متأكد من أنك تريد المتابعة؟",
173+
"cancelConfirmButton": "تأكيد الإلغاء",
171174
"cancelInProgress": "الإلغاء قيد التقدم...",
172175
"pipelineNotRunning": "خط الأنابيب غير قيد التشغيل",
173176
"cancelSuccess": "تم طلب إلغاء خط الأنابيب",

‎lightrag_webui/src/locales/en.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@
168168
"pipelineMessages": "Pipeline Messages",
169169
"cancelButton": "Cancel",
170170
"cancelTooltip": "Cancel pipeline processing",
171+
"cancelConfirmTitle": "Confirm Pipeline Cancellation",
172+
"cancelConfirmDescription": "This will interrupt the ongoing pipeline processing. Are you sure you want to continue?",
173+
"cancelConfirmButton": "Confirm Cancellation",
171174
"cancelInProgress": "Cancellation in progress...",
172175
"pipelineNotRunning": "Pipeline not running",
173176
"cancelSuccess": "Pipeline cancellation requested",

‎lightrag_webui/src/locales/fr.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@
168168
"pipelineMessages": "Messages de Pipeline",
169169
"cancelButton": "Annuler",
170170
"cancelTooltip": "Annuler le traitement du pipeline",
171+
"cancelConfirmTitle": "Confirmer l'Annulation du Pipeline",
172+
"cancelConfirmDescription": "Cette action interrompra le traitement du pipeline en cours. Êtes-vous sûr de vouloir continuer ?",
173+
"cancelConfirmButton": "Confirmer l'Annulation",
171174
"cancelInProgress": "Annulation en cours...",
172175
"pipelineNotRunning": "Le pipeline n'est pas en cours d'exécution",
173176
"cancelSuccess": "Annulation du pipeline demandée",

‎lightrag_webui/src/locales/zh.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@
168168
"pipelineMessages": "流水线消息",
169169
"cancelButton": "中断",
170170
"cancelTooltip": "中断流水线处理",
171+
"cancelConfirmTitle": "确认中断流水线",
172+
"cancelConfirmDescription": "此操作将中断正在进行的流水线处理。确定要继续吗?",
173+
"cancelConfirmButton": "确认中断",
171174
"cancelInProgress": "取消请求进行中...",
172175
"pipelineNotRunning": "流水线未运行",
173176
"cancelSuccess": "流水线中断请求已发送",

‎lightrag_webui/src/locales/zh_TW.json‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,9 @@
168168
"pipelineMessages": "流水線消息",
169169
"cancelButton": "中斷",
170170
"cancelTooltip": "中斷流水線處理",
171+
"cancelConfirmTitle": "確認中斷流水線",
172+
"cancelConfirmDescription": "此操作將中斷正在進行的流水線處理。確定要繼續嗎?",
173+
"cancelConfirmButton": "確認中斷",
171174
"cancelInProgress": "取消請求進行中...",
172175
"pipelineNotRunning": "流水線未運行",
173176
"cancelSuccess": "流水線中斷請求已發送",

0 commit comments

Comments
 (0)