diff --git a/plugins/kolab_files/kolab_files.js b/plugins/kolab_files/kolab_files.js index cbc0faf3..5c2db051 100644 --- a/plugins/kolab_files/kolab_files.js +++ b/plugins/kolab_files/kolab_files.js @@ -878,7 +878,7 @@ kolab_files_drag_drop_init = function(container) return; $(document.body).bind('dragover dragleave drop', function(e) { - if (!file_api.env.folder) + if (!kolab_files_current_folder_is_writable()) return; e.preventDefault(); @@ -898,10 +898,21 @@ kolab_files_drag_drop_init = function(container) }, false); }; +function kolab_files_current_folder_is_writable() +{ + if (!file_api.env.folder) + return false; + + if (file_api.env.folders[file_api.env.folder].readonly) + return false; + + return true; +} + // handler for drag/drop on element kolab_files_drag_hover = function(e) { - if (!file_api.env.folder) + if (!kolab_files_current_folder_is_writable()) return; e.preventDefault(); @@ -1271,6 +1282,7 @@ function kolab_files_ui() check_droptarget: function(node) { return !node.virtual && node.id != file_api.env.folder + && $.inArray('readonly', node.classes) == -1 && $.inArray('collection', node.classes) == -1; } }); @@ -1360,16 +1372,23 @@ function kolab_files_ui() this.folder_list_row = function(i, folder, parent) { - var toggle, sublist, collapsed, parent, parent_name, - row = $('
'), + var toggle, sublist, collapsed, parent, parent_name, classes = ['mailbox'], + row = $('