Support renaming multiple files at once
This commit is contained in:
parent
43f8ec23b8
commit
2653321fc2
6 changed files with 35 additions and 29 deletions
|
@ -5,11 +5,11 @@ interface Data {
|
|||
renameTo: string;
|
||||
}
|
||||
|
||||
export default (uuid: string, { renameFrom, renameTo }: Data): Promise<void> => {
|
||||
export default (uuid: string, directory: string, files: Data[]): Promise<void> => {
|
||||
return new Promise((resolve, reject) => {
|
||||
http.put(`/api/client/servers/${uuid}/files/rename`, {
|
||||
rename_from: renameFrom,
|
||||
rename_to: renameTo,
|
||||
root: directory,
|
||||
files: files.map(f => ({ from: f.renameFrom, to: f.renameTo })),
|
||||
})
|
||||
.then(() => resolve())
|
||||
.catch(reject);
|
|
@ -3,7 +3,7 @@ import Modal, { RequiredModalProps } from '@/components/elements/Modal';
|
|||
import { Form, Formik, FormikHelpers } from 'formik';
|
||||
import Field from '@/components/elements/Field';
|
||||
import { join } from 'path';
|
||||
import renameFile from '@/api/server/files/renameFile';
|
||||
import renameFiles from '@/api/server/files/renameFiles';
|
||||
import { ServerContext } from '@/state/server';
|
||||
import { FileObject } from '@/api/server/files/loadDirectory';
|
||||
import tw from 'twin.macro';
|
||||
|
@ -21,10 +21,12 @@ type Props = RequiredModalProps & { file: FileObject; useMoveTerminology?: boole
|
|||
export default ({ file, useMoveTerminology, ...props }: Props) => {
|
||||
const { uuid } = useServer();
|
||||
const { mutate } = useFileManagerSwr();
|
||||
const { clearAndAddHttpError } = useFlash();
|
||||
const { clearFlashes, clearAndAddHttpError } = useFlash();
|
||||
const directory = ServerContext.useStoreState(state => state.files.directory);
|
||||
|
||||
const submit = ({ name }: FormikValues, { setSubmitting }: FormikHelpers<FormikValues>) => {
|
||||
clearFlashes('files');
|
||||
|
||||
const len = name.split('/').length;
|
||||
if (!useMoveTerminology && len === 1) {
|
||||
// Rename the file within this directory.
|
||||
|
@ -36,7 +38,8 @@ export default ({ file, useMoveTerminology, ...props }: Props) => {
|
|||
|
||||
const renameFrom = join(directory, file.name);
|
||||
const renameTo = join(directory, name);
|
||||
renameFile(uuid, { renameFrom, renameTo })
|
||||
|
||||
renameFiles(uuid, directory, [ { renameFrom, renameTo } ])
|
||||
.then(() => props.onDismissed())
|
||||
.catch(error => {
|
||||
mutate();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue