aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2019-01-18 17:20:54 +0100
committerGitHub <noreply@github.com>2019-01-18 17:20:54 +0100
commit743323ee48552b52b79bbc105f166cb88eba2342 (patch)
tree06096a5c080016c7895ef349a72a89a66c72ce90
parent10ab678aa5f82885cef54140d9b1bed8c990ca2e (diff)
parent332b4aee9da4ffe6f7f79255ca4ce75b8a283693 (diff)
downloadnextcloud-server-743323ee48552b52b79bbc105f166cb88eba2342.tar.gz
nextcloud-server-743323ee48552b52b79bbc105f166cb88eba2342.zip
Merge pull request #12381 from rummatee/master
Move/copy file picker: Remeber last destination and start in current folder
-rw-r--r--apps/files/js/fileactions.js7
-rw-r--r--apps/files/js/filelist.js7
-rw-r--r--core/js/oc-dialogs.js8
3 files changed, 17 insertions, 5 deletions
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js
index 2981fb64c11..ef29551c591 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -648,6 +648,10 @@
if (permissions & OC.PERMISSION_UPDATE) {
actions = OC.dialogs.FILEPICKER_TYPE_COPY_MOVE;
}
+ var dialogDir = context.dir;
+ if (typeof context.fileList.dirInfo.dirLastCopiedTo !== 'undefined') {
+ dialogDir = context.fileList.dirInfo.dirLastCopiedTo;
+ }
OC.dialogs.filepicker(t('files', 'Choose target folder'), function(targetPath, type) {
if (type === OC.dialogs.FILEPICKER_TYPE_COPY) {
context.fileList.copy(filename, targetPath, false, context.dir);
@@ -655,7 +659,8 @@
if (type === OC.dialogs.FILEPICKER_TYPE_MOVE) {
context.fileList.move(filename, targetPath, false, context.dir);
}
- }, false, "httpd/unix-directory", true, actions);
+ context.fileList.dirInfo.dirLastCopiedTo = targetPath;
+ }, false, "httpd/unix-directory", true, actions, dialogDir);
}
});
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index bcecdb697fe..29c5a49131d 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -918,6 +918,10 @@
};
var actions = this.isSelectedMovable() ? OC.dialogs.FILEPICKER_TYPE_COPY_MOVE : OC.dialogs.FILEPICKER_TYPE_COPY;
+ var dialogDir = self.getCurrentDirectory();
+ if (typeof self.dirInfo.dirLastCopiedTo !== 'undefined') {
+ dialogDir = self.dirInfo.dirLastCopiedTo;
+ }
OC.dialogs.filepicker(t('files', 'Choose target folder'), function(targetPath, type) {
self.fileMultiSelectMenu.toggleLoading('copyMove', true);
if (type === OC.dialogs.FILEPICKER_TYPE_COPY) {
@@ -926,7 +930,8 @@
if (type === OC.dialogs.FILEPICKER_TYPE_MOVE) {
self.move(files, targetPath, disableLoadingState);
}
- }, false, "httpd/unix-directory", true, actions);
+ self.dirInfo.dirLastCopiedTo = targetPath;
+ }, false, "httpd/unix-directory", true, actions, dialogDir);
event.preventDefault();
},
diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js
index ed09b4121a7..3583019ef08 100644
--- a/core/js/oc-dialogs.js
+++ b/core/js/oc-dialogs.js
@@ -189,8 +189,9 @@ var OCdialogs = {
* @param mimetypeFilter mimetype to filter by - directories will always be included
* @param modal make the dialog modal
* @param type Type of file picker : Choose, copy, move, copy and move
+ * @param path path to the folder that the the file can be picket from
*/
- filepicker:function(title, callback, multiselect, mimetypeFilter, modal, type) {
+ filepicker:function(title, callback, multiselect, mimetypeFilter, modal, type, path) {
var self = this;
this.filepicker.sortField = 'name';
@@ -214,6 +215,7 @@ var OCdialogs = {
this.filepicker.filesClient = (OCA.Sharing && OCA.Sharing.PublicApp && OCA.Sharing.PublicApp.fileList)? OCA.Sharing.PublicApp.fileList.filesClient: OC.Files.getClient();
this.filelist = null;
+ path = path || '';
$.when(this._getFilePickerTemplate()).then(function($tmpl) {
self.filepicker.loading = false;
@@ -234,7 +236,7 @@ var OCdialogs = {
title: title,
emptytext: emptyText,
newtext: newText
- }).data('path', '').data('multiselect', multiselect).data('mimetype', mimetypeFilter);
+ }).data('path', path).data('multiselect', multiselect).data('mimetype', mimetypeFilter);
if (modal === undefined) {
modal = false;
@@ -355,7 +357,7 @@ var OCdialogs = {
self.filepicker.sortOrder = self.filepicker.sortOrder === 'asc' ? 'desc' : 'asc';
self._fillFilePicker(dir);
});
- self._fillFilePicker('');
+ self._fillFilePicker(path);
});
// build buttons