From f187aa6c93ecc7538875e38629f4efb2c25c3155 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sun, 4 Nov 2012 20:48:38 +0100 Subject: [PATCH] some more code reuse for fileactions also fixes an issue where some fileactions always worked on the last file in the list --- apps/files/js/fileactions.js | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 82d990bf78..0b547502bc 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -70,6 +70,16 @@ var FileActions = { } parent.children('a.name').append(''); var defaultAction = FileActions.getDefault(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); + var actionHandler = function (parent, action, event) { + event.stopPropagation(); + event.preventDefault(); + if(action) + FileActions.currentFile = parent; + file = FileActions.getCurrentFile(); + console.log(file); + console.log(file); + action(file); + }; for (name in actions) { // NOTE: Temporary fix to prevent rename action in root of Shared directory if (name === 'Rename' && $('#dir').val() === '/Shared') { @@ -87,14 +97,7 @@ var FileActions = { html += t('files', name) + ''; var element = $(html); element.data('action', name); - element.click(function (event) { - FileActions.currentFile = $(this).parent().parent().parent(); - event.stopPropagation(); - event.preventDefault(); - var action = actions[$(this).data('action')]; - var currentFile = FileActions.getCurrentFile(); - action(currentFile); - }); + element.click(actionHandler.bind(null, parent, actions[name])); parent.find('a.name>span.fileactions').append(element); } } @@ -113,14 +116,8 @@ var FileActions = { if (img) { element.append($('')); } - element.data('action', 'Delete'); - element.click(function (event) { - event.stopPropagation(); - event.preventDefault(); - var action = actions[$(this).data('action')]; - var currentFile = FileActions.getCurrentFile(); - action(currentFile); - }); + element.data('action', actions['Delete']); + element.click(actionHandler.bind(null, parent, actions['Delete'])); parent.parent().children().last().append(element); } },