Merge pull request #7624 from nextcloud/fix-fileActions-currentFile-not-set-before-using-it
Fix "fileActions.currentFile" not set before using it
This commit is contained in:
commit
fa2fe34b7a
2 changed files with 27 additions and 0 deletions
|
@ -683,11 +683,14 @@
|
|||
// the details to be shown.
|
||||
event.preventDefault();
|
||||
var filename = $tr.attr('data-file');
|
||||
this.fileActions.currentFile = $tr.find('td');
|
||||
var mime = this.fileActions.getCurrentMimeType();
|
||||
var type = this.fileActions.getCurrentType();
|
||||
var permissions = this.fileActions.getCurrentPermissions();
|
||||
var action = this.fileActions.get(mime, type, permissions)['Details'];
|
||||
if (action) {
|
||||
// also set on global object for legacy apps
|
||||
window.FileActions.currentFile = this.fileActions.currentFile;
|
||||
action(filename, {
|
||||
$file: $tr,
|
||||
fileList: this,
|
||||
|
|
|
@ -2489,6 +2489,30 @@ describe('OCA.Files.FileList tests', function() {
|
|||
expect(context.fileActions).toBeDefined();
|
||||
expect(context.dir).toEqual('/subdir');
|
||||
});
|
||||
it('Clicking on an empty space of the file row will trigger the "Details" action', function() {
|
||||
var detailsActionStub = sinon.stub();
|
||||
fileList.setFiles(testFiles);
|
||||
// Override the "Details" action set internally by the FileList for
|
||||
// easier testing.
|
||||
fileList.fileActions.registerAction({
|
||||
mime: 'all',
|
||||
name: 'Details',
|
||||
permissions: OC.PERMISSION_NONE,
|
||||
actionHandler: detailsActionStub
|
||||
});
|
||||
// Ensure that the action works even if fileActions.currentFile is
|
||||
// not set.
|
||||
fileList.fileActions.currentFile = null;
|
||||
var $tr = fileList.findFileEl('One.txt');
|
||||
$tr.find('td.filename a.name').click();
|
||||
expect(detailsActionStub.calledOnce).toEqual(true);
|
||||
expect(detailsActionStub.getCall(0).args[0]).toEqual('One.txt');
|
||||
var context = detailsActionStub.getCall(0).args[1];
|
||||
expect(context.$file.is($tr)).toEqual(true);
|
||||
expect(context.fileList).toBe(fileList);
|
||||
expect(context.fileActions).toBe(fileList.fileActions);
|
||||
expect(context.dir).toEqual('/subdir');
|
||||
});
|
||||
it('redisplays actions when new actions have been registered', function() {
|
||||
var actionStub = sinon.stub();
|
||||
var readyHandler = sinon.stub();
|
||||
|
|
Loading…
Reference in a new issue