Improved FileActions with context

A context hash is now passed to file action handlers which makes it
possible to have file list specific file actions.
This commit is contained in:
Vincent Petry 2014-05-19 13:18:44 +02:00
parent 9baf47c2b4
commit 279ede33af
2 changed files with 17 additions and 4 deletions

View File

@ -98,8 +98,13 @@
* @param parent "td" element of the file for which to display actions
* @param triggerEvent if true, triggers the fileActionsReady on the file
* list afterwards (false by default)
* @param fileList OCA.Files.FileList instance on which the action is
* done, defaults to OCA.Files.App.fileList
*/
display: function (parent, triggerEvent) {
display: function (parent, triggerEvent, fileList) {
if (!fileList) {
console.warn('FileActions.display() MUST be called with a OCA.Files.FileList instance');
}
this.currentFile = parent;
var self = this;
var actions = this.getActions(this.getCurrentMimeType(), this.getCurrentType(), this.getCurrentPermissions());
@ -122,7 +127,11 @@
self.currentFile = event.data.elem;
var file = self.getCurrentFile();
event.data.actionFunc(file);
event.data.actionFunc(file, {
$file: $(this).closest('tr'),
fileList: fileList || OCA.Files.App.fileList,
fileActions: self
});
};
var addAction = function (name, action, displayName) {

View File

@ -248,7 +248,11 @@
var action = this.fileActions.getDefault(mime,type, permissions);
if (action) {
event.preventDefault();
action(filename);
action(filename, {
$file: $tr,
fileList: this,
fileActions: this.fileActions
});
}
}
}
@ -725,7 +729,7 @@
}
// display actions
this.fileActions.display(filenameTd, false);
this.fileActions.display(filenameTd, false, this);
if (fileData.isPreviewAvailable) {
// lazy load / newly inserted td ?