From dc8841b407c19103cc56547342c7785486768c8c Mon Sep 17 00:00:00 2001 From: Debian Date: Sun, 24 May 2026 11:46:23 +0200 Subject: [PATCH] =?UTF-8?q?feat(backups):=20Quick-Toggle=20f=C3=BCr=20Remo?= =?UTF-8?q?te-Ziele=20+=20hardcodiertes=20an/aus=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../src/pages/Backups/RemoteTargets.tsx | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/management-ui/src/pages/Backups/RemoteTargets.tsx b/management-ui/src/pages/Backups/RemoteTargets.tsx index 06a9e45..10c8a6c 100644 --- a/management-ui/src/pages/Backups/RemoteTargets.tsx +++ b/management-ui/src/pages/Backups/RemoteTargets.tsx @@ -116,6 +116,16 @@ export default function RemoteTargetsTab() { }, onError: (e: Error) => msg.error(e.message), }) + const quickToggle = useMutation({ + mutationFn: async ({ id, row, checked }: { id: number; row: RemoteTarget; checked: boolean }) => { + await apiClient.put(`/backup-remotes/${id}`, { + name: row.name, kind: row.kind, target_url: row.target_url, + settings: row.settings, active: checked, + }) + }, + onSuccess: () => { void qc.invalidateQueries({ queryKey: ['backup-remotes'] }) }, + onError: (e: Error) => message.error(e.message), + }) const del = useMutation({ mutationFn: async (id: number) => { await apiClient.delete(`/backup-remotes/${id}`) }, onSuccess: () => { qc.invalidateQueries({ queryKey: ['backup-remotes'] }) }, @@ -156,7 +166,14 @@ export default function RemoteTargetsTab() { }, { title: t('remotes.col.active'), dataIndex: 'active', width: 80, - render: (v: boolean) => v ? an : aus, + render: (v: boolean, r: RemoteTarget) => ( + quickToggle.mutate({ id: r.id, row: r, checked })} + /> + ), }, { title: t('common.actions'), key: 'a', width: 240,