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

Merge pull request #3690 from haiwen/handle-move-file

Putting the file out is the same as putting it in a blank space
This commit is contained in:
Daniel Pan
2019-06-21 18:09:06 +08:00
committed by GitHub
2 changed files with 28 additions and 19 deletions

View File

@@ -375,11 +375,12 @@ class DirentListItem extends React.Component {
e.dataTransfer.setData('applicaiton/drag-item-info', dragStartItemData);
}
onItemDragEnter = () => {
onItemDragEnter = (e) => {
if (Utils.isIEBrower()) {
return false;
}
if (this.props.dirent.type === 'dir') {
e.stopPropagation();
this.setState({isDropTipshow: true});
}
}
@@ -392,10 +393,14 @@ class DirentListItem extends React.Component {
e.dataTransfer.dropEffect = 'move';
}
onItemDragLeave = () => {
onItemDragLeave = (e) => {
if (Utils.isIEBrower()) {
return false;
}
if (this.props.dirent.type === 'dir') {
e.stopPropagation();
}
this.setState({isDropTipshow: false});
}
@@ -407,6 +412,9 @@ class DirentListItem extends React.Component {
if (e.dataTransfer.files.length) { // uploaded files
return;
}
if (this.props.dirent.type === 'dir') {
e.stopPropagation();
}
let dragStartItemData = e.dataTransfer.getData('applicaiton/drag-item-info');
dragStartItemData = JSON.parse(dragStartItemData);
if (Array.isArray(dragStartItemData)) { //move items

View File

@@ -71,6 +71,7 @@ class DirentListView extends React.Component {
isListDropTipShow: false,
};
this.enteredCounter = 0;
this.isRepoOwner = props.currentRepoInfo.owner_email === username;
this.isAdmin = props.currentRepoInfo.is_admin;
this.repoEncrypted = props.currentRepoInfo.encrypted;
@@ -551,7 +552,8 @@ class DirentListView extends React.Component {
if (Utils.isIEBrower()) {
return false;
}
if (e.target.className === 'table-container ') {
this.enteredCounter++;
if (this.enteredCounter !== 0) {
this.setState({isListDropTipShow: true});
}
}
@@ -568,7 +570,8 @@ class DirentListView extends React.Component {
if (Utils.isIEBrower()) {
return false;
}
if (e.target.className === 'table-container table-drop-active') {
this.enteredCounter--;
if (this.enteredCounter === 0) {
this.setState({isListDropTipShow: false});
}
}
@@ -578,6 +581,7 @@ class DirentListView extends React.Component {
return false;
}
e.persist();
this.enteredCounter = 0;
this.setState({isListDropTipShow: false});
if (e.dataTransfer.files.length) { // uploaded files
return;
@@ -587,22 +591,19 @@ class DirentListView extends React.Component {
let {nodeDirent, nodeParentPath, nodeRootPath} = dragStartItemData;
if (e.target.className === 'table-container table-drop-active') {
if (Array.isArray(dragStartItemData)) { //selected items
return;
}
if (nodeRootPath === this.props.path || nodeParentPath === this.props.path) {
return;
}
if (this.props.path.indexOf(nodeRootPath) !== -1) {
return;
}
this.props.onItemMove(this.props.currentRepoInfo, nodeDirent, this.props.path, nodeParentPath);
if (Array.isArray(dragStartItemData)) { //selected items
return;
}
if (nodeRootPath === this.props.path || nodeParentPath === this.props.path) {
return;
}
if (this.props.path.indexOf(nodeRootPath) !== -1) {
return;
}
this.props.onItemMove(this.props.currentRepoInfo, nodeDirent, this.props.path, nodeParentPath);
}
render() {