mirror of
https://github.com/immich-app/immich.git
synced 2025-12-12 01:10:30 +03:00
49 lines
1.6 KiB
Svelte
49 lines
1.6 KiB
Svelte
<script lang="ts">
|
|
import AdminPageLayout from '$lib/components/layouts/AdminPageLayout.svelte';
|
|
import OnEvents from '$lib/components/OnEvents.svelte';
|
|
import JobsPanel from '$lib/components/QueuePanel.svelte';
|
|
import { queueManager } from '$lib/managers/queue-manager.svelte';
|
|
import { getQueuesActions } from '$lib/services/queue.service';
|
|
import { type QueueResponseDto } from '@immich/sdk';
|
|
import { CommandPaletteContext, type ActionItem } from '@immich/ui';
|
|
import { onMount } from 'svelte';
|
|
import { t } from 'svelte-i18n';
|
|
import type { PageData } from './$types';
|
|
|
|
type Props = {
|
|
data: PageData;
|
|
};
|
|
|
|
const { data }: Props = $props();
|
|
|
|
onMount(() => queueManager.listen());
|
|
|
|
let queues = $derived<QueueResponseDto[]>(queueManager.queues);
|
|
|
|
const { ResumePaused, CreateJob, ManageConcurrency } = $derived(getQueuesActions($t, queueManager.queues));
|
|
const commands: ActionItem[] = $derived([CreateJob, ManageConcurrency]);
|
|
|
|
const onQueueUpdate = (update: QueueResponseDto) => {
|
|
queues = queues.map((queue) => {
|
|
if (queue.name === update.name) {
|
|
return update;
|
|
}
|
|
return queue;
|
|
});
|
|
};
|
|
</script>
|
|
|
|
<CommandPaletteContext {commands} />
|
|
|
|
<OnEvents {onQueueUpdate} />
|
|
|
|
<AdminPageLayout breadcrumbs={[{ title: data.meta.title }]} actions={[ResumePaused, CreateJob, ManageConcurrency]}>
|
|
<section id="setting-content" class="flex place-content-center sm:mx-4">
|
|
<section class="w-full pb-28 sm:w-5/6 md:w-212.5">
|
|
{#if queues}
|
|
<JobsPanel {queues} />
|
|
{/if}
|
|
</section>
|
|
</section>
|
|
</AdminPageLayout>
|