mirror of
https://github.com/uroni/urbackup_backend.git
synced 2025-10-26 11:36:50 +00:00
Add row backup options
This commit is contained in:
parent
5c494f82c6
commit
9e4e64e901
@ -6,10 +6,12 @@ import {
|
||||
MenuPopover,
|
||||
MenuTrigger,
|
||||
} from "@fluentui/react-components";
|
||||
import { MouseEvent } from "react";
|
||||
import { MoreHorizontal24Filled } from "@fluentui/react-icons";
|
||||
import { StatusClientItem } from "../api/urbackupserver";
|
||||
import { useMutation, useQueryClient } from "react-query";
|
||||
|
||||
import { urbackupServer } from "../App";
|
||||
import { BackupType, StatusClientItem } from "../api/urbackupserver";
|
||||
|
||||
export function StatusRowMenu({ id }: { id: StatusClientItem["id"] }) {
|
||||
const queryClient = useQueryClient();
|
||||
@ -20,10 +22,28 @@ export function StatusRowMenu({ id }: { id: StatusClientItem["id"] }) {
|
||||
},
|
||||
});
|
||||
|
||||
const startBackupMutation = useMutation(
|
||||
({
|
||||
id,
|
||||
type,
|
||||
}: {
|
||||
id: Parameters<typeof urbackupServer.startBackup>["0"];
|
||||
type: Parameters<typeof urbackupServer.startBackup>["1"];
|
||||
}) => urbackupServer.startBackup(id, type),
|
||||
);
|
||||
|
||||
const removeClient = () => {
|
||||
removeClientMutation.mutate(id);
|
||||
};
|
||||
|
||||
const startBackup = (e: MouseEvent<HTMLDivElement>) => {
|
||||
const type = e.currentTarget.dataset.type;
|
||||
|
||||
if (type) {
|
||||
startBackupMutation.mutate({ id: [id], type: +type });
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<Menu>
|
||||
<MenuTrigger disableButtonEnhancement>
|
||||
@ -37,6 +57,18 @@ export function StatusRowMenu({ id }: { id: StatusClientItem["id"] }) {
|
||||
|
||||
<MenuPopover onClick={(e) => e.stopPropagation()}>
|
||||
<MenuList>
|
||||
<MenuItem data-type={BackupType.INCR_FILE} onClick={startBackup}>
|
||||
Incremental file backup
|
||||
</MenuItem>
|
||||
<MenuItem data-type={BackupType.FULL_FILE} onClick={startBackup}>
|
||||
Full file backup
|
||||
</MenuItem>
|
||||
<MenuItem data-type={BackupType.INCR_IMAGE} onClick={startBackup}>
|
||||
Incremental image backup
|
||||
</MenuItem>
|
||||
<MenuItem data-type={BackupType.FULL_IMAGE} onClick={startBackup}>
|
||||
Full image backup
|
||||
</MenuItem>
|
||||
<MenuItem onClick={removeClient}>Remove client</MenuItem>
|
||||
</MenuList>
|
||||
</MenuPopover>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user