1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-02 07:27:04 +00:00

Optimize repo delete 2 (#4628)

* optimzie group repo delete logic

* repair code bug

* optimize repo delete code
This commit is contained in:
杨顺强
2020-07-27 11:06:59 +08:00
committed by GitHub
parent 25d58bb79f
commit f762b1a311
9 changed files with 98 additions and 56 deletions

View File

@@ -44,7 +44,8 @@ class SharedRepoListItem extends React.Component {
isHistorySettingDialogShow: false,
isDeleteDialogShow: false,
isAPITokenDialogShow: false,
isRepoShareUploadLinksDialogOpen: false
isRepoShareUploadLinksDialogOpen: false,
isRepoDeleted: false,
};
this.isDeparementOnwerGroupMember = false;
}
@@ -187,6 +188,37 @@ class SharedRepoListItem extends React.Component {
this.setState({isDeleteDialogShow: !this.state.isDeleteDialogShow});
}
onItemDelete = () => {
const { currentGroup, repo } = this.props;
if (!currentGroup) { // repo can not be deleted in share all module
return;
}
const groupID = currentGroup.id;
seafileAPI.deleteGroupOwnedLibrary(groupID, repo.repo_id).then(() => {
this.setState({
isRepoDeleted: true,
isDeleteDialogShow: false,
});
this.props.onItemDelete(repo);
let name = repo.repo_name;
var msg = gettext('Successfully deleted {name}.').replace('{name}', name);
toaster.success(msg);
}).catch((error) => {
let errMessage = Utils.getErrorMsg(error);
if (errMessage === gettext('Error')) {
let name = repo.repo_name;
errMessage = gettext('Failed to delete {name}.').replace('{name}', name);
}
toaster.danger(errMessage);
this.setState({isRepoDeleted: false});
});
}
toggleShareDialog = () => {
this.setState({isShowSharedDialog: false});
}
@@ -475,7 +507,8 @@ class SharedRepoListItem extends React.Component {
<ModalPortal>
<DeleteRepoDialog
repo={this.props.repo}
onDeleteRepo={this.props.onItemDelete}
isRepoDeleted={this.state.isRepoDeleted}
onDeleteRepo={this.onItemDelete}
toggle={this.onItemDeleteToggle}
/>
</ModalPortal>

View File

@@ -15,7 +15,7 @@ const propTypes = {
sortItems: PropTypes.func,
repoList: PropTypes.array.isRequired,
onItemUnshare: PropTypes.func.isRequired,
onItemDelete: PropTypes.func.isRequired,
onItemDelete: PropTypes.func,
onItemDetails: PropTypes.func,
onItemRename: PropTypes.func,
};