Merge pull request #7046 from nextcloud/hide-summary-file-actions-when-selected-file-does-not-match
Hide summary file actions when a selected file does not match
This commit is contained in:
commit
e0aaca1726
|
@ -2825,10 +2825,30 @@
|
||||||
this.$el.find('#headerName a.name>span:first').text(selection);
|
this.$el.find('#headerName a.name>span:first').text(selection);
|
||||||
this.$el.find('#modified a>span:first').text('');
|
this.$el.find('#modified a>span:first').text('');
|
||||||
this.$el.find('table').addClass('multiselect');
|
this.$el.find('table').addClass('multiselect');
|
||||||
|
this.$el.find('.selectedActions .copy-move').toggleClass('hidden', !this.isSelectedCopiableOrMovable());
|
||||||
|
this.$el.find('.selectedActions .download').toggleClass('hidden', !this.isSelectedDownloadable());
|
||||||
this.$el.find('.delete-selected').toggleClass('hidden', !this.isSelectedDeletable());
|
this.$el.find('.delete-selected').toggleClass('hidden', !this.isSelectedDeletable());
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether all selected files are copiable or movable
|
||||||
|
*/
|
||||||
|
isSelectedCopiableOrMovable: function() {
|
||||||
|
return _.reduce(this.getSelectedFiles(), function(copiableOrMovable, file) {
|
||||||
|
return copiableOrMovable && (file.permissions & OC.PERMISSION_UPDATE);
|
||||||
|
}, true);
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check whether all selected files are downloadable
|
||||||
|
*/
|
||||||
|
isSelectedDownloadable: function() {
|
||||||
|
return _.reduce(this.getSelectedFiles(), function(downloadable, file) {
|
||||||
|
return downloadable && (file.permissions & OC.PERMISSION_READ);
|
||||||
|
}, true);
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Check whether all selected files are deletable
|
* Check whether all selected files are deletable
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -94,6 +94,7 @@ describe('OCA.Files.FileList tests', function() {
|
||||||
'<input type="checkbox" id="select_all_files" class="select-all checkbox">' +
|
'<input type="checkbox" id="select_all_files" class="select-all checkbox">' +
|
||||||
'<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
|
'<a class="name columntitle" data-sort="name"><span>Name</span><span class="sort-indicator"></span></a>' +
|
||||||
'<span id="selectedActionsList" class="selectedActions hidden">' +
|
'<span id="selectedActionsList" class="selectedActions hidden">' +
|
||||||
|
'<a href class="copy-move">Move or copy</a>' +
|
||||||
'<a href class="download"><img src="actions/download.svg">Download</a>' +
|
'<a href class="download"><img src="actions/download.svg">Download</a>' +
|
||||||
'<a href class="delete-selected">Delete</a></span>' +
|
'<a href class="delete-selected">Delete</a></span>' +
|
||||||
'</th>' +
|
'</th>' +
|
||||||
|
@ -2024,6 +2025,28 @@ describe('OCA.Files.FileList tests', function() {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
describe('Selection overlay', function() {
|
describe('Selection overlay', function() {
|
||||||
|
it('show doesnt show the copy/move action if one or more files are not copiable/movable', function () {
|
||||||
|
fileList.setFiles(testFiles);
|
||||||
|
$('#permissions').val(OC.PERMISSION_READ | OC.PERMISSION_UPDATE);
|
||||||
|
$('.select-all').click();
|
||||||
|
expect(fileList.$el.find('.selectedActions .copy-move').hasClass('hidden')).toEqual(false);
|
||||||
|
testFiles[0].permissions = OC.PERMISSION_READ;
|
||||||
|
$('.select-all').click();
|
||||||
|
fileList.setFiles(testFiles);
|
||||||
|
$('.select-all').click();
|
||||||
|
expect(fileList.$el.find('.selectedActions .copy-move').hasClass('hidden')).toEqual(true);
|
||||||
|
});
|
||||||
|
it('show doesnt show the download action if one or more files are not downloadable', function () {
|
||||||
|
fileList.setFiles(testFiles);
|
||||||
|
$('#permissions').val(OC.PERMISSION_READ | OC.PERMISSION_UPDATE);
|
||||||
|
$('.select-all').click();
|
||||||
|
expect(fileList.$el.find('.selectedActions .download').hasClass('hidden')).toEqual(false);
|
||||||
|
testFiles[0].permissions = OC.PERMISSION_UPDATE;
|
||||||
|
$('.select-all').click();
|
||||||
|
fileList.setFiles(testFiles);
|
||||||
|
$('.select-all').click();
|
||||||
|
expect(fileList.$el.find('.selectedActions .download').hasClass('hidden')).toEqual(true);
|
||||||
|
});
|
||||||
it('show doesnt show the delete action if one or more files are not deletable', function () {
|
it('show doesnt show the delete action if one or more files are not deletable', function () {
|
||||||
fileList.setFiles(testFiles);
|
fileList.setFiles(testFiles);
|
||||||
$('#permissions').val(OC.PERMISSION_READ | OC.PERMISSION_DELETE);
|
$('#permissions').val(OC.PERMISSION_READ | OC.PERMISSION_DELETE);
|
||||||
|
|
Loading…
Reference in New Issue