diff options
| author | Mohamed Bassem <me@mbassem.com> | 2025-10-26 09:58:51 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-26 09:58:51 +0000 |
| commit | 6ea5dd194e7be62c1a51566f31808be076d3b139 (patch) | |
| tree | 3a7d207bfd78a4e18d9ef135c7b5fef1106a318f /apps/web | |
| parent | 046c29dcf1083f0ab89b080f7696e6d642a6bd17 (diff) | |
| download | karakeep-6ea5dd194e7be62c1a51566f31808be076d3b139.tar.zst | |
refactor: generalize tidy assets queue into admin maintenance (#2059)
* refactor: generalize admin maintenance queue
* more fixes
Diffstat (limited to 'apps/web')
| -rw-r--r-- | apps/web/components/admin/BackgroundJobs.tsx | 53 | ||||
| -rw-r--r-- | apps/web/lib/i18n/locales/en/translation.json | 6 |
2 files changed, 35 insertions, 24 deletions
diff --git a/apps/web/components/admin/BackgroundJobs.tsx b/apps/web/components/admin/BackgroundJobs.tsx index 569fd67a..5920b1ab 100644 --- a/apps/web/components/admin/BackgroundJobs.tsx +++ b/apps/web/components/admin/BackgroundJobs.tsx @@ -320,20 +320,22 @@ function useJobActions() { }, }); - const { mutateAsync: tidyAssets, isPending: isTidyAssetsPending } = - api.admin.tidyAssets.useMutation({ - onSuccess: () => { - toast({ - description: "Tidy assets request has been enqueued!", - }); - }, - onError: (e) => { - toast({ - variant: "destructive", - description: e.message, - }); - }, - }); + const { + mutateAsync: runAdminMaintenanceTask, + isPending: isAdminMaintenancePending, + } = api.admin.runAdminMaintenanceTask.useMutation({ + onSuccess: () => { + toast({ + description: "Admin maintenance request has been enqueued!", + }); + }, + onError: (e) => { + toast({ + variant: "destructive", + description: e.message, + }); + }, + }); return { crawlActions: [ @@ -409,11 +411,18 @@ function useJobActions() { loading: isReprocessingPending, }, ], - tidyAssetsActions: [ + adminMaintenanceActions: [ { label: t("admin.background_jobs.actions.clean_assets"), - onClick: () => tidyAssets(), - loading: isTidyAssetsPending, + onClick: () => + runAdminMaintenanceTask({ + type: "tidy_assets", + args: { + cleanDanglingAssets: true, + syncAssetMetadata: true, + }, + }), + loading: isAdminMaintenancePending, }, ], }; @@ -480,11 +489,13 @@ export default function BackgroundJobs() { actions: actions.assetPreprocessingActions, }, { - title: t("admin.background_jobs.jobs.tidy_assets.title"), + title: t("admin.background_jobs.jobs.admin_maintenance.title"), icon: Database, - stats: { queued: serverStats.tidyAssetsStats.queued }, - description: t("admin.background_jobs.jobs.tidy_assets.description"), - actions: actions.tidyAssetsActions, + stats: { queued: serverStats.adminMaintenanceStats.queued }, + description: t( + "admin.background_jobs.jobs.admin_maintenance.description", + ), + actions: actions.adminMaintenanceActions, }, { title: t("admin.background_jobs.jobs.video.title"), diff --git a/apps/web/lib/i18n/locales/en/translation.json b/apps/web/lib/i18n/locales/en/translation.json index 4e79be51..f000bab5 100644 --- a/apps/web/lib/i18n/locales/en/translation.json +++ b/apps/web/lib/i18n/locales/en/translation.json @@ -381,9 +381,9 @@ "title": "Asset Preprocessing Jobs", "description": "Image and document preprocessing (screenshots, text extraction, etc.)" }, - "tidy_assets": { - "title": "Tidy Assets Jobs", - "description": "Asset cleanup and storage optimization" + "admin_maintenance": { + "title": "Admin Maintenance Jobs", + "description": "Administrative cleanup and asset maintenance" }, "video": { "title": "Video Download Jobs", |
