1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-05 08:53:14 +00:00

support undo operation when delete single file/folder (#5475)

This commit is contained in:
lian
2023-05-16 15:46:38 +08:00
committed by GitHub
parent f795128caa
commit 7b25ea1b7f
3 changed files with 24 additions and 6 deletions

View File

@@ -1056,11 +1056,17 @@ class LibContentView extends React.Component {
deleteFolder = () => {
const { repoID } = this.props;
const { folderToDelete: path } = this.state;
seafileAPI.deleteDir(repoID, path).then(() => {
seafileAPI.deleteDir(repoID, path).then((res) => {
this.deleteItemAjaxCallback(path, true);
let name = Utils.getFileName(path);
var msg = gettext('Successfully deleted {name}').replace('{name}', name);
toaster.success(msg);
const successTipWithUndo = (
<>
<span>{msg}</span>
<a className="action-link p-0 ml-1" href="#" onClick={this.restoreDeletedDirents.bind(this, res.data.commit_id, [path])}>{gettext('Undo')}</a>
</>
);
toaster.success(successTipWithUndo, {duration: 5});
}).catch((error) => {
let errMessage = Utils.getErrorMsg(error);
if (errMessage === gettext('Error')) {
@@ -1078,11 +1084,17 @@ class LibContentView extends React.Component {
this.toggleDeleteFolderDialog();
});
} else {
seafileAPI.deleteFile(repoID, path).then(() => {
seafileAPI.deleteFile(repoID, path).then((res) => {
this.deleteItemAjaxCallback(path, isDir);
let name = Utils.getFileName(path);
var msg = gettext('Successfully deleted {name}').replace('{name}', name);
toaster.success(msg);
const successTipWithUndo = (
<>
<span>{msg}</span>
<a className="action-link p-0 ml-1" href="#" onClick={this.restoreDeletedDirents.bind(this, res.data.commit_id, [path])}>{gettext('Undo')}</a>
</>
);
toaster.success(successTipWithUndo, {duration: 5});
}).catch((error) => {
let errMessage = Utils.getErrorMsg(error);
if (errMessage === gettext('Error')) {

View File

@@ -525,7 +525,10 @@ class DirView(APIView):
error_msg = 'Internal Server Error'
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
return Response({'success': True})
result = {}
result['success'] = True
result['commit_id'] = repo.head_cmmt_id
return Response(result)
class DirDetailView(APIView):

View File

@@ -713,4 +713,7 @@ class FileView(APIView):
error_msg = 'Internal Server Error'
return api_error(status.HTTP_500_INTERNAL_SERVER_ERROR, error_msg)
return Response({'success': True})
result = {}
result['success'] = True
result['commit_id'] = repo.head_cmmt_id
return Response(result)