diff --git a/src/views/Drive.vue b/src/views/Drive.vue
index d0397030..d5b8fedf 100644
--- a/src/views/Drive.vue
+++ b/src/views/Drive.vue
@@ -25,7 +25,7 @@
1)
- return false;
- var target = this.selectedFiles.length == 1 ? this.selectedFiles[0] : this.currentDir;
-
- if (target == null) {
- return false;
- }
-
- if (this.clipboard.fileTreeNode != null && this.clipboard.fileTreeNode.samePointer(target)) {
- return false;
- }
-
- return target.isWritable() && target.isDirectory();
+ return this.isPasteToFolderAvailable();
},
},
@@ -1313,7 +1303,6 @@ module.exports = {
that.openFile();
} else {
that.selectedFiles = [];
- that.multiSelectTargetFolder = null;
}
if (callback != null) {
callback();
@@ -2285,6 +2274,35 @@ module.exports = {
}
});
}
+ },
+ isPasteToFolderAvailable() {
+ if (this.currentDir == null)
+ return false;
+
+ if (typeof (this.clipboard) == undefined || this.clipboard == null || this.clipboard.op == null || typeof (this.clipboard.op) == "undefined")
+ return false;
+
+ if (this.selectedFiles.length > 1)
+ return false;
+ var target = this.selectedFiles.length == 1 ? this.selectedFiles[0] : this.currentDir;
+
+ if (target == null) {
+ return false;
+ }
+
+ if (this.clipboard.fileTreeNode != null && this.clipboard.fileTreeNode.samePointer(target)) {
+ return false;
+ }
+
+ return target.isWritable() && target.isDirectory();
+ },
+ pasteToFolder(e) {
+ var target = this.multiSelectTargetFolder;
+ if (target == null) {
+ this.paste(e);
+ } else {
+ this.pasteMultiSelect(e);
+ }
},
pasteMultiSelect(e, retrying) {
var target = this.multiSelectTargetFolder;