mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-09 10:50:24 +00:00
improve move© interactive (#4495)
* improve move© interactive * optimize code * optimize code
This commit is contained in:
@@ -23,7 +23,7 @@ class CopyMoveDirentProgressDialog extends React.Component {
|
|||||||
textAlign: 'left',
|
textAlign: 'left',
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<Modal isOpen={true} toggle={this.props.toggleDialog}>
|
<Modal isOpen={true}>
|
||||||
<ModalHeader toggle={this.props.toggleDialog}>{title}</ModalHeader>
|
<ModalHeader toggle={this.props.toggleDialog}>{title}</ModalHeader>
|
||||||
<ModalBody style={{minHeight: '80px'}}>
|
<ModalBody style={{minHeight: '80px'}}>
|
||||||
<div className="progress" style={{height: '40px'}}>
|
<div className="progress" style={{height: '40px'}}>
|
||||||
|
@@ -78,6 +78,7 @@ class LibContentView extends React.Component {
|
|||||||
isSessionExpired: false,
|
isSessionExpired: false,
|
||||||
isCopyMoveProgressDialogShow: false,
|
isCopyMoveProgressDialogShow: false,
|
||||||
asyncCopyMoveTaskId: '',
|
asyncCopyMoveTaskId: '',
|
||||||
|
asyncOperationType: 'move',
|
||||||
asyncOperationProgress: 0,
|
asyncOperationProgress: 0,
|
||||||
asyncOperatedFilesLength: 0,
|
asyncOperatedFilesLength: 0,
|
||||||
};
|
};
|
||||||
@@ -638,18 +639,18 @@ class LibContentView extends React.Component {
|
|||||||
// toolbar operations
|
// toolbar operations
|
||||||
onMoveItems = (destRepo, destDirentPath) => {
|
onMoveItems = (destRepo, destDirentPath) => {
|
||||||
let repoID = this.props.repoID;
|
let repoID = this.props.repoID;
|
||||||
let direntPaths = this.getSelectedDirentPaths();
|
let selectedDirentList = this.state.selectedDirentList;
|
||||||
let dirNames = this.getSelectedDirentNames();
|
|
||||||
|
|
||||||
if (repoID !== destRepo.repo_id) {
|
if (repoID !== destRepo.repo_id) {
|
||||||
this.setState({
|
this.setState(() => ({
|
||||||
asyncOperatedFilesLength: dirNames.length,
|
asyncOperatedFilesLength: selectedDirentList.length,
|
||||||
asyncOperationProgress: 0,
|
asyncOperationProgress: 0,
|
||||||
asyncOperationType: 'move',
|
asyncOperationType: 'move',
|
||||||
isCopyMoveProgressDialogShow: true
|
isCopyMoveProgressDialogShow: true
|
||||||
});
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let dirNames = this.getSelectedDirentNames();
|
||||||
|
let direntPaths = this.getSelectedDirentPaths();
|
||||||
seafileAPI.moveDir(repoID, destRepo.repo_id, destDirentPath, this.state.path, dirNames).then(res => {
|
seafileAPI.moveDir(repoID, destRepo.repo_id, destDirentPath, this.state.path, dirNames).then(res => {
|
||||||
if (repoID !== destRepo.repo_id) {
|
if (repoID !== destRepo.repo_id) {
|
||||||
this.setState({
|
this.setState({
|
||||||
@@ -688,17 +689,18 @@ class LibContentView extends React.Component {
|
|||||||
|
|
||||||
onCopyItems = (destRepo, destDirentPath) => {
|
onCopyItems = (destRepo, destDirentPath) => {
|
||||||
let repoID = this.props.repoID;
|
let repoID = this.props.repoID;
|
||||||
let dirNames = this.getSelectedDirentNames();
|
let selectedDirentList = this.state.selectedDirentList;
|
||||||
|
|
||||||
if (repoID !== destRepo.repo_id) {
|
if (repoID !== destRepo.repo_id) {
|
||||||
this.setState({
|
this.setState({
|
||||||
asyncOperatedFilesLength: dirNames.length,
|
asyncOperatedFilesLength: selectedDirentList.length,
|
||||||
asyncOperationProgress: 0,
|
asyncOperationProgress: 0,
|
||||||
asyncOperationType: 'copy',
|
asyncOperationType: 'copy',
|
||||||
isCopyMoveProgressDialogShow: true
|
isCopyMoveProgressDialogShow: true
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let dirNames = this.getSelectedDirentNames();
|
||||||
seafileAPI.copyDir(repoID, destRepo.repo_id, destDirentPath, this.state.path, dirNames).then(res => {
|
seafileAPI.copyDir(repoID, destRepo.repo_id, destDirentPath, this.state.path, dirNames).then(res => {
|
||||||
if (repoID !== destRepo.repo_id) {
|
if (repoID !== destRepo.repo_id) {
|
||||||
this.setState({
|
this.setState({
|
||||||
@@ -1721,7 +1723,7 @@ class LibContentView extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let enableDirPrivateShare = false;
|
let enableDirPrivateShare = false;
|
||||||
let { currentRepoInfo, userPerm } = this.state;
|
let { currentRepoInfo, userPerm, isCopyMoveProgressDialogShow } = this.state;
|
||||||
let showShareBtn = Utils.isHasPermissionToShare(currentRepoInfo, userPerm);
|
let showShareBtn = Utils.isHasPermissionToShare(currentRepoInfo, userPerm);
|
||||||
let isRepoOwner = currentRepoInfo.owner_email === username;
|
let isRepoOwner = currentRepoInfo.owner_email === username;
|
||||||
let isVirtual = currentRepoInfo.is_virtual;
|
let isVirtual = currentRepoInfo.is_virtual;
|
||||||
@@ -1866,7 +1868,7 @@ class LibContentView extends React.Component {
|
|||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{this.state.isCopyMoveProgressDialogShow && (
|
{isCopyMoveProgressDialogShow && (
|
||||||
<CopyMoveDirentProgressDialog
|
<CopyMoveDirentProgressDialog
|
||||||
type={this.state.asyncOperationType}
|
type={this.state.asyncOperationType}
|
||||||
asyncOperatedFilesLength={this.state.asyncOperatedFilesLength}
|
asyncOperatedFilesLength={this.state.asyncOperatedFilesLength}
|
||||||
|
Reference in New Issue
Block a user