From b3572ce44364f2b3a661c1a429256cc1d38f6202 Mon Sep 17 00:00:00 2001 From: busya Date: Fri, 15 May 2026 22:37:25 +0300 Subject: [PATCH] fix(ui): upgrade global indicator from thin bar to rich progress panel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Show full stats grid (total/success/fail/skip) + progress bar + cancel button during active run - Compact colored banner for terminal states (completed/partial/failed/cancelled) with auto-dismiss - Import cancelRun from translate API for functional cancel button - fromStore() reactivity confirmed working — no store changes needed - Hide on /translate/[id] to avoid duplication (existing behavior preserved) --- .../TranslationRunGlobalIndicator.svelte | 176 ++++++++++++------ 1 file changed, 118 insertions(+), 58 deletions(-) diff --git a/frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte b/frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte index 70871649..2a14a1ea 100644 --- a/frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte +++ b/frontend/src/lib/components/translate/TranslationRunGlobalIndicator.svelte @@ -1,19 +1,22 @@ - + - - - - + + + + + {#if show}
- -
-
-
- -
- {label} + {#if isActive} + +
+
+ +
+
+
+ {label} +
+
+ + +
+
- {#if uxState === 'running' || uxState === 'inserting'} - - {runState.current?.successfulRecords || 0}/{runState.current?.totalRecords || 0} - - {#if (runState.current?.failedRecords || 0) > 0} - - {$t.translate?.run?.failed || 'Failed'}: {runState.current?.failedRecords} - - {/if} - + +
+
+
+ + +
+
+ {($t.translate?.run?.total || 'Total')} + {totalRecords} +
+
+ {($t.translate?.run?.success || 'OK')} + {successfulRecords} +
+
+ {($t.translate?.run?.failed || 'Fail')} + {failedRecords} +
+
+ {($t.translate?.run?.skipped || 'Skip')} + {skippedRecords} +
+
+
+
+ {:else} + +
+
+ {#if uxState === 'completed'} + + {:else if uxState === 'partial' || uxState === 'failed'} + + {:else} + + {/if} + {label} + {#if uxState === 'partial'} + {successfulRecords}/{totalRecords} + {/if} +
+ ▶ {$t.common?.open || 'Open'} - {:else if uxState === 'partial'} - - {runState.current?.successfulRecords || 0}/{runState.current?.totalRecords || 0} - - - ▶ {$t.common?.open || 'Open'} - - {:else} - - ▶ {$t.common?.open || 'Open'} - - {/if} -
+
+ {/if}
{/if}