diff --git a/web/src/lib/managers/event-manager.svelte.ts b/web/src/lib/managers/event-manager.svelte.ts
index dfa73dc4f6..bbd21dcd3d 100644
--- a/web/src/lib/managers/event-manager.svelte.ts
+++ b/web/src/lib/managers/event-manager.svelte.ts
@@ -6,6 +6,7 @@ import type {
ApiKeyResponseDto,
AssetResponseDto,
IntegrityReportType,
+ JobCreateDto,
LibraryResponseDto,
LoginResponseDto,
PersonResponseDto,
@@ -68,6 +69,8 @@ export type Events = {
IntegrityReportDeleteStatus: [{ type?: IntegrityReportType; id?: string; isDeleting: boolean }];
IntegrityReportDeleted: [{ type?: IntegrityReportType; id?: string }];
+ JobCreate: [{ dto: JobCreateDto }];
+
LibraryCreate: [LibraryResponseDto];
LibraryUpdate: [LibraryResponseDto];
LibraryDelete: [{ id: string }];
diff --git a/web/src/lib/services/job.service.ts b/web/src/lib/services/job.service.ts
index 3241afc5b0..a87659f8f6 100644
--- a/web/src/lib/services/job.service.ts
+++ b/web/src/lib/services/job.service.ts
@@ -1,3 +1,4 @@
+import { eventManager } from '$lib/managers/event-manager.svelte';
import { handleError } from '$lib/utils/handle-error';
import { getFormatter } from '$lib/utils/i18n';
import { createJob, type JobCreateDto } from '@immich/sdk';
@@ -8,6 +9,7 @@ export const handleCreateJob = async (dto: JobCreateDto) => {
try {
await createJob({ jobCreateDto: dto });
+ eventManager.emit('JobCreate', { dto });
toastManager.success($t('admin.job_created'));
return true;
} catch (error) {
diff --git a/web/src/routes/admin/maintenance/+page.svelte b/web/src/routes/admin/maintenance/+page.svelte
index 3425812cbd..8f0d8bc31c 100644
--- a/web/src/routes/admin/maintenance/+page.svelte
+++ b/web/src/routes/admin/maintenance/+page.svelte
@@ -1,20 +1,21 @@
+
+
@@ -101,14 +93,14 @@