Merge pull request #15835 from owncloud/delete-permission-icon
Show hint if there is no delete permission
This commit is contained in:
commit
5b998e13d7
5 changed files with 62 additions and 5 deletions
|
@ -581,7 +581,9 @@ a.action>img {
|
|||
#fileList tr:hover a.action,
|
||||
#fileList a.action.permanent,
|
||||
#fileList tr:focus a.action,
|
||||
#fileList a.action.permanent
|
||||
#fileList a.action.permanent,
|
||||
#fileList tr:hover a.action.no-permission:hover,
|
||||
#fileList tr:focus a.action.no-permission:focus
|
||||
/*#fileList .name:focus .action*/ {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
|
||||
filter: alpha(opacity=50);
|
||||
|
|
|
@ -288,9 +288,15 @@
|
|||
} else if (mountType === 'shared-root') {
|
||||
deleteTitle = t('files', 'Unshare');
|
||||
}
|
||||
var cssClasses = 'action delete icon-delete';
|
||||
if((context.$file.data('permissions') & OC.PERMISSION_DELETE) === 0) {
|
||||
// add css class no-permission to delete icon
|
||||
cssClasses += ' no-permission';
|
||||
deleteTitle = t('files', 'No permission to delete');
|
||||
}
|
||||
var $actionLink = $('<a href="#" original-title="' +
|
||||
escapeHTML(deleteTitle) +
|
||||
'" class="action delete icon-delete">' +
|
||||
'" class="' +cssClasses + '">' +
|
||||
'<span class="hidden-visually">' + escapeHTML(deleteTitle) + '</span>' +
|
||||
'</a>'
|
||||
);
|
||||
|
@ -426,12 +432,17 @@
|
|||
name: 'Delete',
|
||||
displayName: '',
|
||||
mime: 'all',
|
||||
permissions: OC.PERMISSION_DELETE,
|
||||
// permission is READ because we show a hint instead if there is no permission
|
||||
permissions: OC.PERMISSION_READ,
|
||||
icon: function() {
|
||||
return OC.imagePath('core', 'actions/delete');
|
||||
},
|
||||
render: _.bind(this._renderDeleteAction, this),
|
||||
actionHandler: function(fileName, context) {
|
||||
// if there is no permission to delete do nothing
|
||||
if((context.$file.data('permissions') & OC.PERMISSION_DELETE) === 0) {
|
||||
return;
|
||||
}
|
||||
context.fileList.do_delete(fileName, context.dir);
|
||||
$('.tipsy').remove();
|
||||
}
|
||||
|
|
|
@ -157,6 +157,48 @@ describe('OCA.Files.FileActions tests', function() {
|
|||
expect(deleteStub.getCall(0).args[1]).toEqual('/somepath/dir');
|
||||
deleteStub.restore();
|
||||
});
|
||||
it('shows delete hint when no permission to delete', function() {
|
||||
var deleteStub = sinon.stub(fileList, 'do_delete');
|
||||
var fileData = {
|
||||
id: 18,
|
||||
type: 'file',
|
||||
name: 'testName.txt',
|
||||
path: '/somepath/dir',
|
||||
mimetype: 'text/plain',
|
||||
size: '1234',
|
||||
etag: 'a01234c',
|
||||
mtime: '123456',
|
||||
permissions: OC.PERMISSION_READ
|
||||
};
|
||||
var $tr = fileList.add(fileData);
|
||||
FileActions.display($tr.find('td.filename'), true, fileList);
|
||||
|
||||
var $action = $tr.find('.action.delete');
|
||||
|
||||
expect($action.hasClass('no-permission')).toEqual(true);
|
||||
deleteStub.restore();
|
||||
});
|
||||
it('shows delete hint not when permission to delete', function() {
|
||||
var deleteStub = sinon.stub(fileList, 'do_delete');
|
||||
var fileData = {
|
||||
id: 18,
|
||||
type: 'file',
|
||||
name: 'testName.txt',
|
||||
path: '/somepath/dir',
|
||||
mimetype: 'text/plain',
|
||||
size: '1234',
|
||||
etag: 'a01234c',
|
||||
mtime: '123456',
|
||||
permissions: OC.PERMISSION_DELETE
|
||||
};
|
||||
var $tr = fileList.add(fileData);
|
||||
FileActions.display($tr.find('td.filename'), true, fileList);
|
||||
|
||||
var $action = $tr.find('.action.delete');
|
||||
|
||||
expect($action.hasClass('no-permission')).toEqual(false);
|
||||
deleteStub.restore();
|
||||
});
|
||||
it('passes context to action handler', function() {
|
||||
var actionStub = sinon.stub();
|
||||
var fileData = {
|
||||
|
|
|
@ -128,7 +128,7 @@ describe('OCA.External.FileList tests', function() {
|
|||
'?dir=/another%20mount%20points/sftp%20mount'
|
||||
);
|
||||
expect($tr.find('.nametext').text().trim()).toEqual('sftp mount');
|
||||
expect($tr.find('.column-scope').text().trim()).toEqual('System');
|
||||
expect($tr.find('.column-scope > span').text().trim()).toEqual('System');
|
||||
expect($tr.find('.column-backend').text().trim()).toEqual('SFTP');
|
||||
|
||||
$tr = $rows.eq(1);
|
||||
|
|
|
@ -56,7 +56,9 @@
|
|||
background-image: url('../img/actions/confirm.svg');
|
||||
}
|
||||
|
||||
.icon-delete {
|
||||
.icon-delete,
|
||||
.icon-delete.no-permission:hover,
|
||||
.icon-delete.no-permission:focus {
|
||||
background-image: url('../img/actions/delete.svg');
|
||||
}
|
||||
.icon-delete:hover,
|
||||
|
|
Loading…
Reference in a new issue