fix #2711 using a custom event, also use css selectors over filterAttr

This commit is contained in:
Jörn Friedrich Dreyer 2013-08-08 13:50:04 +02:00
parent 057d7aa108
commit ff67f115d4
3 changed files with 11 additions and 7 deletions

View File

@ -65,7 +65,7 @@ var FileActions = {
FileActions.currentFile = parent; FileActions.currentFile = parent;
var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
var file = FileActions.getCurrentFile(); var file = FileActions.getCurrentFile();
if ($('tr').filterAttr('data-file', file).data('renaming')) { if ($('tr[data-file="'+file+'"]').data('renaming')) {
return; return;
} }
parent.children('a.name').append('<span class="fileactions" />'); parent.children('a.name').append('<span class="fileactions" />');
@ -164,10 +164,11 @@ $(document).ready(function () {
window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val()); window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val());
}); });
} }
$('#fileList tr').each(function () { $('#fileList tr').each(function () {
FileActions.display($(this).children('td.filename')); FileActions.display($(this).children('td.filename'));
}); });
$('#fileList').trigger(jQuery.Event("fileActionsReady"));
}); });

View File

@ -4,6 +4,10 @@ $(document).ready(function() {
if (typeof OC.Share !== 'undefined' && typeof FileActions !== 'undefined' && !disableSharing) { if (typeof OC.Share !== 'undefined' && typeof FileActions !== 'undefined' && !disableSharing) {
$('#fileList').one('fileActionsReady',function(){
OC.Share.loadIcons('file');
});
FileActions.register('all', 'Share', OC.PERMISSION_READ, OC.imagePath('core', 'actions/share'), function(filename) { FileActions.register('all', 'Share', OC.PERMISSION_READ, OC.imagePath('core', 'actions/share'), function(filename) {
if ($('#dir').val() == '/') { if ($('#dir').val() == '/') {
var item = $('#dir').val() + filename; var item = $('#dir').val() + filename;
@ -33,6 +37,5 @@ $(document).ready(function() {
OC.Share.showDropDown(itemType, $(tr).data('id'), appendTo, true, possiblePermissions); OC.Share.showDropDown(itemType, $(tr).data('id'), appendTo, true, possiblePermissions);
} }
}); });
OC.Share.loadIcons('file');
} }
}); });

View File

@ -22,9 +22,9 @@ OC.Share={
if (itemType != 'file' && itemType != 'folder') { if (itemType != 'file' && itemType != 'folder') {
$('a.share[data-item="'+item+'"]').css('background', 'url('+image+') no-repeat center'); $('a.share[data-item="'+item+'"]').css('background', 'url('+image+') no-repeat center');
} else { } else {
var file = $('tr').filterAttr('data-id', item); var file = $('tr[data-id="'+item+'"]');
if (file.length > 0) { if (file.length > 0) {
var action = $(file).find('.fileactions .action').filterAttr('data-action', 'Share'); var action = $(file).find('.fileactions .action[data-action="Share"]');
var img = action.find('img').attr('src', image); var img = action.find('img').attr('src', image);
action.addClass('permanent'); action.addClass('permanent');
action.html(' '+t('core', 'Shared')).prepend(img); action.html(' '+t('core', 'Shared')).prepend(img);
@ -36,7 +36,7 @@ OC.Share={
// Search for possible parent folders that are shared // Search for possible parent folders that are shared
while (path != last) { while (path != last) {
if (path == data['path']) { if (path == data['path']) {
var actions = $('.fileactions .action').filterAttr('data-action', 'Share'); var actions = $('.fileactions .action[data-action="Share"]');
$.each(actions, function(index, action) { $.each(actions, function(index, action) {
var img = $(action).find('img'); var img = $(action).find('img');
if (img.attr('src') != OC.imagePath('core', 'actions/public')) { if (img.attr('src') != OC.imagePath('core', 'actions/public')) {