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.
|
// the details to be shown.
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
var filename = $tr.attr('data-file');
|
var filename = $tr.attr('data-file');
|
||||||
|
this.fileActions.currentFile = $tr.find('td');
|
||||||
var mime = this.fileActions.getCurrentMimeType();
|
var mime = this.fileActions.getCurrentMimeType();
|
||||||
var type = this.fileActions.getCurrentType();
|
var type = this.fileActions.getCurrentType();
|
||||||
var permissions = this.fileActions.getCurrentPermissions();
|
var permissions = this.fileActions.getCurrentPermissions();
|
||||||
var action = this.fileActions.get(mime, type, permissions)['Details'];
|
var action = this.fileActions.get(mime, type, permissions)['Details'];
|
||||||
if (action) {
|
if (action) {
|
||||||
|
// also set on global object for legacy apps
|
||||||
|
window.FileActions.currentFile = this.fileActions.currentFile;
|
||||||
action(filename, {
|
action(filename, {
|
||||||
$file: $tr,
|
$file: $tr,
|
||||||
fileList: this,
|
fileList: this,
|
||||||
|
|
|
@ -2489,6 +2489,30 @@ describe('OCA.Files.FileList tests', function() {
|
||||||
expect(context.fileActions).toBeDefined();
|
expect(context.fileActions).toBeDefined();
|
||||||
expect(context.dir).toEqual('/subdir');
|
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() {
|
it('redisplays actions when new actions have been registered', function() {
|
||||||
var actionStub = sinon.stub();
|
var actionStub = sinon.stub();
|
||||||
var readyHandler = sinon.stub();
|
var readyHandler = sinon.stub();
|
||||||
|
|
Loading…
Reference in a new issue