From 528964e0b73fc3ddbf14737a342823d7b6fd9816 Mon Sep 17 00:00:00 2001 From: Florian Schunk Date: Fri, 9 Nov 2018 12:23:51 +0100 Subject: [PATCH 1/4] copy Dialog starts in current directory Signed-off-by: Florian Schunk --- apps/files/js/fileactions.js | 2 +- core/js/oc-dialogs.js | 13 +++++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 2981fb64c1106..7ad37f3c5597a 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -655,7 +655,7 @@ if (type === OC.dialogs.FILEPICKER_TYPE_MOVE) { context.fileList.move(filename, targetPath, false, context.dir); } - }, false, "httpd/unix-directory", true, actions); + }, false, "httpd/unix-directory", true, actions, context.dir); } }); diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index ed09b4121a7bb..9646eb0cc4126 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,9 @@ 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; + if (path == undefined) { + path = ''; + } $.when(this._getFilePickerTemplate()).then(function($tmpl) { self.filepicker.loading = false; @@ -232,9 +236,14 @@ var OCdialogs = { self.$filePicker = $tmpl.octemplate({ dialog_name: dialogName, title: title, +<<<<<<< HEAD emptytext: emptyText, newtext: newText }).data('path', '').data('multiselect', multiselect).data('mimetype', mimetypeFilter); +======= + emptytext: emptyText + }).data('path', path).data('multiselect', multiselect).data('mimetype', mimetypeFilter); +>>>>>>> copy Dialog starts in current directory if (modal === undefined) { modal = false; @@ -355,7 +364,7 @@ var OCdialogs = { self.filepicker.sortOrder = self.filepicker.sortOrder === 'asc' ? 'desc' : 'asc'; self._fillFilePicker(dir); }); - self._fillFilePicker(''); + self._fillFilePicker(path); }); // build buttons From 37270fc525b2cbe0b715bac707705eef2daffb03 Mon Sep 17 00:00:00 2001 From: Florian Schunk Date: Fri, 9 Nov 2018 15:38:59 +0100 Subject: [PATCH 2/4] remember last copied to directory Signed-off-by: Florian Schunk --- apps/files/js/fileactions.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 7ad37f3c5597a..05efa1f36e9d8 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 (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.dir); + context.fileList.dirInfo.dirLastCopiedTo = targetPath; + }, false, "httpd/unix-directory", true, actions, dialogDir); } }); From ecb936495f095610298c952c7c555ebb6daf1174 Mon Sep 17 00:00:00 2001 From: Florian Schunk Date: Sun, 23 Dec 2018 14:27:08 +0100 Subject: [PATCH 3/4] also remember folder for multiselect actions Signed-off-by: Florian Schunk --- apps/files/js/filelist.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index bcecdb697fe97..7f0d1ea1a9480 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 (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(); }, From 332b4aee9da4ffe6f7f79255ca4ce75b8a283693 Mon Sep 17 00:00:00 2001 From: Florian Schunk Date: Mon, 7 Jan 2019 22:07:16 +0100 Subject: [PATCH 4/4] fix testing for undefined Signed-off-by: Florian Schunk --- apps/files/js/fileactions.js | 2 +- apps/files/js/filelist.js | 2 +- core/js/oc-dialogs.js | 9 +-------- 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 05efa1f36e9d8..ef29551c591d9 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -649,7 +649,7 @@ actions = OC.dialogs.FILEPICKER_TYPE_COPY_MOVE; } var dialogDir = context.dir; - if (context.fileList.dirInfo.dirLastCopiedTo != undefined) { + if (typeof context.fileList.dirInfo.dirLastCopiedTo !== 'undefined') { dialogDir = context.fileList.dirInfo.dirLastCopiedTo; } OC.dialogs.filepicker(t('files', 'Choose target folder'), function(targetPath, type) { diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 7f0d1ea1a9480..29c5a49131d54 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -919,7 +919,7 @@ var actions = this.isSelectedMovable() ? OC.dialogs.FILEPICKER_TYPE_COPY_MOVE : OC.dialogs.FILEPICKER_TYPE_COPY; var dialogDir = self.getCurrentDirectory(); - if (self.dirInfo.dirLastCopiedTo != undefined) { + if (typeof self.dirInfo.dirLastCopiedTo !== 'undefined') { dialogDir = self.dirInfo.dirLastCopiedTo; } OC.dialogs.filepicker(t('files', 'Choose target folder'), function(targetPath, type) { diff --git a/core/js/oc-dialogs.js b/core/js/oc-dialogs.js index 9646eb0cc4126..3583019ef088d 100644 --- a/core/js/oc-dialogs.js +++ b/core/js/oc-dialogs.js @@ -215,9 +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; - if (path == undefined) { - path = ''; - } + path = path || ''; $.when(this._getFilePickerTemplate()).then(function($tmpl) { self.filepicker.loading = false; @@ -236,14 +234,9 @@ var OCdialogs = { self.$filePicker = $tmpl.octemplate({ dialog_name: dialogName, title: title, -<<<<<<< HEAD emptytext: emptyText, newtext: newText - }).data('path', '').data('multiselect', multiselect).data('mimetype', mimetypeFilter); -======= - emptytext: emptyText }).data('path', path).data('multiselect', multiselect).data('mimetype', mimetypeFilter); ->>>>>>> copy Dialog starts in current directory if (modal === undefined) { modal = false;