mirror of
https://github.com/wukko/cobalt.git
synced 2025-05-28 12:30:12 +02:00
web/ProcessingQueueItem: display all steps in progress bar
This commit is contained in:
parent
cdfb6e0fd9
commit
398c5402d2
@ -76,6 +76,9 @@
|
||||
runningWorker={
|
||||
item.state === "running" ? $currentTasks[item.runningWorker] : undefined
|
||||
}
|
||||
runningWorkerId={
|
||||
item.state === "running" ? item.runningWorker : undefined
|
||||
}
|
||||
/>
|
||||
{/each}
|
||||
{#if queue.length === 0}
|
||||
|
@ -7,7 +7,7 @@
|
||||
import type { CobaltQueueItem } from "$lib/types/queue";
|
||||
import type { CobaltCurrentTaskItem } from "$lib/types/queen-bee";
|
||||
|
||||
import Skeleton from "$components/misc/Skeleton.svelte";
|
||||
import ProgressBar from "$components/queue/ProgressBar.svelte";
|
||||
|
||||
import IconX from "@tabler/icons-svelte/IconX.svelte";
|
||||
import IconCheck from "@tabler/icons-svelte/IconCheck.svelte";
|
||||
@ -27,6 +27,7 @@
|
||||
export let id: string;
|
||||
export let info: CobaltQueueItem;
|
||||
export let runningWorker: CobaltCurrentTaskItem | undefined;
|
||||
export let runningWorkerId: string | undefined;
|
||||
|
||||
$: progress = runningWorker?.progress;
|
||||
$: size = formatFileSize(runningWorker?.progress?.size);
|
||||
@ -50,22 +51,15 @@
|
||||
</div>
|
||||
|
||||
{#if info.state === "running"}
|
||||
<div class="file-progress">
|
||||
{#if progress?.percentage}
|
||||
<div
|
||||
class="progress"
|
||||
style="width: {Math.min(
|
||||
100,
|
||||
progress?.percentage || 0
|
||||
)}%"
|
||||
></div>
|
||||
{:else}
|
||||
<Skeleton
|
||||
height="6px"
|
||||
width="100%"
|
||||
class="elevated indeterminate-progress"
|
||||
<div class="progress-holder">
|
||||
{#each info.pipeline as pipeline}
|
||||
<ProgressBar
|
||||
percentage={progress?.percentage}
|
||||
workerId={pipeline.workerId}
|
||||
runningWorkerId={runningWorkerId}
|
||||
completedWorkers={info.completedWorkers}
|
||||
/>
|
||||
{/if}
|
||||
{/each}
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@ -75,6 +69,7 @@
|
||||
{/if}
|
||||
|
||||
{#if info.state === "running"}
|
||||
{(info.completedWorkers?.length || 0) + 1}/{info.pipeline.length}
|
||||
{#if runningWorker && progress && progress.percentage}
|
||||
{$t(`queue.state.running.${runningWorker.type}`)}: {Math.ceil(
|
||||
progress.percentage
|
||||
@ -147,24 +142,10 @@
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.file-progress {
|
||||
width: 100%;
|
||||
background-color: var(--button-elevated);
|
||||
}
|
||||
|
||||
.file-progress,
|
||||
.file-progress .progress {
|
||||
height: 6px;
|
||||
border-radius: 10px;
|
||||
transition: width 0.1s;
|
||||
}
|
||||
|
||||
.file-progress :global(.indeterminate-progress) {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.file-progress .progress {
|
||||
background-color: var(--blue);
|
||||
.progress-holder {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
gap: 2px;
|
||||
}
|
||||
|
||||
.file-title {
|
||||
|
50
web/src/components/queue/ProgressBar.svelte
Normal file
50
web/src/components/queue/ProgressBar.svelte
Normal file
@ -0,0 +1,50 @@
|
||||
<script lang="ts">
|
||||
import Skeleton from "$components/misc/Skeleton.svelte";
|
||||
|
||||
export let percentage: number = 0;
|
||||
export let workerId: string;
|
||||
export let runningWorkerId: string | undefined;
|
||||
export let completedWorkers: string[] = [];
|
||||
</script>
|
||||
|
||||
<div class="file-progress">
|
||||
{#if percentage && workerId === runningWorkerId}
|
||||
<div
|
||||
class="progress"
|
||||
style="width: {Math.min(100, percentage || 0)}%"
|
||||
></div>
|
||||
{:else if completedWorkers.includes(workerId)}
|
||||
<div
|
||||
class="progress"
|
||||
style="width: 100%"
|
||||
></div>
|
||||
{:else if workerId === runningWorkerId}
|
||||
<Skeleton
|
||||
height="6px"
|
||||
width="100%"
|
||||
class="elevated indeterminate-progress"
|
||||
/>
|
||||
{/if}
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.file-progress {
|
||||
width: 100%;
|
||||
background-color: var(--button-elevated);
|
||||
}
|
||||
|
||||
.file-progress,
|
||||
.file-progress .progress {
|
||||
height: 6px;
|
||||
border-radius: 10px;
|
||||
transition: width 0.1s;
|
||||
}
|
||||
|
||||
.file-progress :global(.indeterminate-progress) {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.file-progress .progress {
|
||||
background-color: var(--blue);
|
||||
}
|
||||
</style>
|
Loading…
x
Reference in New Issue
Block a user