diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js index 21ef475d..66d2e668 100644 --- a/plugins/kolab_files/kolab_files.js +++ b/plugins/kolab_files/kolab_files.js @@ -99,7 +99,8 @@ window.rcmail && rcmail.addEventListener('init', function() { rcmail.gui_objects.filelist.parentNode.onmousedown = function(e) { return kolab_files_click_on_list(e); }; - rcmail.enable_command('menu-open', 'menu-save', 'files-sort', 'files-search', 'files-search-reset', 'folder-create', true); + rcmail.enable_command('menu-open', 'menu-save', 'files-sort', 'files-search', 'files-search-reset', + 'folder-create', 'folder-rename', true); rcmail.file_list.init(); kolab_files_list_coltypes(); @@ -362,6 +363,60 @@ function kolab_files_folder_create_dialog() }); }; +// folder edit dialog +function kolab_files_folder_edit_dialog() +{ + var dialog = $('#files-folder-edit-dialog'), + buttons = {}, options = [], + separator = file_api.env.directory_separator, + arr = file_api.env.folder.split(separator), + folder = arr.pop(), + path = arr.join(separator), + select = $('select[name="parent"]', dialog).html(''), + input = $('input[name="name"]', dialog).val(folder); + + buttons[rcmail.gettext('kolab_files.save')] = function () { + var folder = '', name = input.val(), parent = select.val(); + + if (!name) + return; + + if (parent) + folder = parent + separator; + + folder += name; + + file_api.folder_rename(file_api.env.folder, folder); + kolab_dialog_close(this); + }; + + buttons[rcmail.gettext('kolab_files.cancel')] = function () { + kolab_dialog_close(this); + }; + + // show dialog window + kolab_dialog_show(dialog, { + title: rcmail.gettext('kolab_files.folderedit'), + buttons: buttons + }); + + // Fix submitting form with Enter + $('form', dialog).submit(kolab_dialog_submit_handler); + + // build parent selector + options.push($('