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 @@ - + +
    +

    + +
    +