diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js
index f21a41e8..2bea5f80 100644
--- a/plugins/kolab_files/kolab_files.js
+++ b/plugins/kolab_files/kolab_files.js
@@ -1709,18 +1709,59 @@ rcube_webmail.prototype.files_delete = function()
});
};
-rcube_webmail.prototype.files_move = function(folder)
+rcube_webmail.prototype.files_move = function(folder, obj, event, files)
{
- var files = kolab_files_selected();
+ if (!files)
+ files = kolab_files_selected();
+
+ if (!folder) {
+ var ref = this;
+ return this.files_folder_selector(event, function(folder) {
+ ref.files_move(folder, null, event, files);
+ });
+ }
+
file_api.file_move(files, folder);
};
-rcube_webmail.prototype.files_copy = function(folder)
+rcube_webmail.prototype.files_copy = function(folder, obj, event, files)
{
- var files = kolab_files_selected();
+ if (!files)
+ files = kolab_files_selected();
+
+ if (!folder) {
+ var ref = this;
+ return this.files_folder_selector(event, function(folder) {
+ ref.files_copy(folder, null, event, files);
+ });
+ }
+
file_api.file_copy(files, folder);
};
+ // create folder selector popup
+rcube_webmail.prototype.files_folder_selector = function(event, callback)
+{
+ this.entity_selector('folder-selector', callback, file_api.env.folders, function(folder, a, folder_fullname) {
+ var n = folder.depth || 0,
+ id = folder.id,
+ row = $('
');
+
+ if (folder.virtual || folder.readonly)
+ a.addClass('virtual').attr({'aria-disabled': 'true', tabindex: '-1'});
+ else
+ a.addClass('active').data('id', folder_fullname);
+
+ a.css('padding-left', n ? (n * 16) + 'px' : 0);
+
+ // add folder name element
+ a.append($('').text(folder.name));
+
+ return row.append(a);
+ }, event);
+ };
+
+
rcube_webmail.prototype.files_upload = function(form)
{
if (form)
diff --git a/plugins/kolab_files/localization/en_US.inc b/plugins/kolab_files/localization/en_US.inc
index e16e3f9e..b30d2162 100644
--- a/plugins/kolab_files/localization/en_US.inc
+++ b/plugins/kolab_files/localization/en_US.inc
@@ -180,6 +180,7 @@ $labels['arialabelfilesessiondialog'] = 'Document editing session';
$labels['arialabelcollaborators'] = 'List of document editors';
$labels['arialabelexportoptions'] = 'Export options';
$labels['arialabeldoceditorsdialog'] = 'Document editors (invitations)';
+$labels['arialabelmorefileactions'] = 'More file actions';
$labels['type.plain'] = 'Plain Text Document';
$labels['type.vndoasisopendocumenttext'] = 'Text Document (ODF)';
diff --git a/plugins/kolab_files/skins/elastic/templates/files.html b/plugins/kolab_files/skins/elastic/templates/files.html
index a8b45fec..16a16c9a 100644
--- a/plugins/kolab_files/skins/elastic/templates/files.html
+++ b/plugins/kolab_files/skins/elastic/templates/files.html
@@ -52,12 +52,12 @@
-
+
+
+