diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php index 1d03cd89f8..41d3a3eca4 100644 --- a/apps/files/ajax/upload.php +++ b/apps/files/ajax/upload.php @@ -116,7 +116,8 @@ if (strpos($dir, '..') === false) { 'name' => basename($target), 'originalname' => $files['name'][$i], 'uploadMaxFilesize' => $maxUploadFileSize, - 'maxHumanFilesize' => $maxHumanFileSize + 'maxHumanFilesize' => $maxHumanFileSize, + 'permissions' => $meta['permissions'], ); } } diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 330fe86f6b..009ea62de9 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -68,6 +68,9 @@ var FileActions = { if ($('tr[data-file="'+file+'"]').data('renaming')) { return; } + + // recreate fileactions + parent.children('a.name').find('.fileactions').remove(); parent.children('a.name').append(''); var defaultAction = FileActions.getDefault(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); @@ -117,6 +120,8 @@ var FileActions = { addAction('Share', actions.Share); } + // remove the existing delete action + parent.parent().children().last().find('.action.delete').remove(); if (actions['Delete']) { var img = FileActions.icons['Delete']; if (img.call) { diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 9a2d39c365..fe706801b9 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -130,7 +130,6 @@ var FileList={ if (hidden) { tr.hide(); } - FileActions.display(tr.find('td.filename')); return tr; }, addDir:function(name,size,lastModified,hidden){ @@ -776,6 +775,12 @@ $(document).ready(function(){ data.context.attr('data-size', file.size); data.context.find('td.filesize').text(humanFileSize(file.size)); } + var permissions = data.context.data('permissions'); + if(permissions != file.permissions) { + data.context.attr('data-permissions', file.permissions); + data.context.data('permissions', file.permissions); + } + FileActions.display(data.context.find('td.filename')); if (FileList.loadingDone) { FileList.loadingDone(file.name, file.id); }