aboutsummaryrefslogtreecommitdiffstats
path: root/apps/web/components
diff options
context:
space:
mode:
authorMohamed Bassem <me@mbassem.com>2025-10-26 09:58:51 +0000
committerGitHub <noreply@github.com>2025-10-26 09:58:51 +0000
commit6ea5dd194e7be62c1a51566f31808be076d3b139 (patch)
tree3a7d207bfd78a4e18d9ef135c7b5fef1106a318f /apps/web/components
parent046c29dcf1083f0ab89b080f7696e6d642a6bd17 (diff)
downloadkarakeep-6ea5dd194e7be62c1a51566f31808be076d3b139.tar.zst
refactor: generalize tidy assets queue into admin maintenance (#2059)
* refactor: generalize admin maintenance queue * more fixes
Diffstat (limited to 'apps/web/components')
-rw-r--r--apps/web/components/admin/BackgroundJobs.tsx53
1 files changed, 32 insertions, 21 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"),