diff options
Diffstat (limited to 'apps/files')
-rw-r--r-- | apps/files/js/fileactions.js | 8 | ||||
-rw-r--r-- | apps/files/js/filelist.js | 3 | ||||
-rw-r--r-- | apps/files/tests/js/fileactionsSpec.js | 8 | ||||
-rw-r--r-- | apps/files/tests/js/filelistSpec.js | 26 |
4 files changed, 41 insertions, 4 deletions
diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 1242fea7f99..a12b1f03423 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -138,11 +138,13 @@ self.currentFile = event.data.elem; var file = self.getCurrentFile(); + var $tr = $(this).closest('tr'); event.data.actionFunc(file, { - $file: $(this).closest('tr'), + $file: $tr, fileList: fileList || OCA.Files.App.fileList, - fileActions: self + fileActions: self, + dir: $tr.attr('data-path') || fileList.getCurrentDirectory() }); }; @@ -210,7 +212,7 @@ } if (triggerEvent){ - $('#fileList').trigger(jQuery.Event("fileActionsReady")); + fileList.$fileList.trigger(jQuery.Event("fileActionsReady")); } }, getCurrentFile: function () { diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index d969cb57c56..e1cbfc38566 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -251,7 +251,8 @@ action(filename, { $file: $tr, fileList: this, - fileActions: this.fileActions + fileActions: this.fileActions, + dir: $tr.attr('data-path') || this.getCurrentDirectory() }); } } diff --git a/apps/files/tests/js/fileactionsSpec.js b/apps/files/tests/js/fileactionsSpec.js index 519a31b3fce..edd7e343884 100644 --- a/apps/files/tests/js/fileactionsSpec.js +++ b/apps/files/tests/js/fileactionsSpec.js @@ -152,5 +152,13 @@ describe('OCA.Files.FileActions tests', function() { expect(context.$file.is($tr)).toEqual(true); expect(context.fileList).toBeDefined(); expect(context.fileActions).toBeDefined(); + expect(context.dir).toEqual('/subdir'); + + // when data-path is defined + actionStub.reset(); + $tr.attr('data-path', '/somepath'); + $tr.find('.action-test').click(); + context = actionStub.getCall(0).args[1]; + expect(context.dir).toEqual('/somepath'); }); }); diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 3dd715254e4..739ae599c65 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1526,6 +1526,32 @@ describe('OCA.Files.FileList tests', function() { expect(fileList.getSelectedFiles()).toEqual([]); }); }); + describe('File actions', function() { + it('Clicking on a file name will trigger default action', function() { + var actionStub = sinon.stub(); + fileList.setFiles(testFiles); + fileList.fileActions.register( + 'text/plain', + 'Test', + OC.PERMISSION_ALL, + function() { + // Specify icon for hitory button + return OC.imagePath('core','actions/history'); + }, + actionStub + ); + fileList.fileActions.setDefault('text/plain', 'Test'); + var $tr = fileList.findFileEl('One.txt'); + $tr.find('td.filename>a.name').click(); + expect(actionStub.calledOnce).toEqual(true); + expect(actionStub.getCall(0).args[0]).toEqual('One.txt'); + var context = actionStub.getCall(0).args[1]; + expect(context.$file.is($tr)).toEqual(true); + expect(context.fileList).toBeDefined(); + expect(context.fileActions).toBeDefined(); + expect(context.dir).toEqual('/subdir'); + }); + }); describe('Sorting files', function() { it('Sorts by name by default', function() { fileList.reload(); |