code style

This commit is contained in:
Robin Appelman 2012-10-28 11:51:54 +01:00
parent 20e0432de8
commit d9ef6da2e4
1 changed files with 101 additions and 93 deletions

View File

@ -1,96 +1,98 @@
var FileActions={ var FileActions = {
actions:{}, actions: {},
defaults:{}, defaults: {},
icons:{}, icons: {},
currentFile:null, currentFile: null,
register:function(mime,name,permissions,icon,action){ register: function (mime, name, permissions, icon, action) {
if(!FileActions.actions[mime]){ if (!FileActions.actions[mime]) {
FileActions.actions[mime]={}; FileActions.actions[mime] = {};
} }
if (!FileActions.actions[mime][name]) { if (!FileActions.actions[mime][name]) {
FileActions.actions[mime][name] = {}; FileActions.actions[mime][name] = {};
} }
FileActions.actions[mime][name]['action'] = action; FileActions.actions[mime][name]['action'] = action;
FileActions.actions[mime][name]['permissions'] = permissions; FileActions.actions[mime][name]['permissions'] = permissions;
FileActions.icons[name]=icon; FileActions.icons[name] = icon;
}, },
setDefault:function(mime,name){ setDefault: function (mime, name) {
FileActions.defaults[mime]=name; FileActions.defaults[mime] = name;
}, },
get:function(mime,type,permissions){ get: function (mime, type, permissions) {
var actions={}; var actions = {};
if(FileActions.actions.all){ if (FileActions.actions.all) {
actions=$.extend( actions, FileActions.actions.all ); actions = $.extend(actions, FileActions.actions.all);
} }
if(mime){ if (mime) {
if(FileActions.actions[mime]){ if (FileActions.actions[mime]) {
actions=$.extend( actions, FileActions.actions[mime] ); actions = $.extend(actions, FileActions.actions[mime]);
} }
var mimePart=mime.substr(0,mime.indexOf('/')); var mimePart = mime.substr(0, mime.indexOf('/'));
if(FileActions.actions[mimePart]){ if (FileActions.actions[mimePart]) {
actions=$.extend( actions, FileActions.actions[mimePart] ); actions = $.extend(actions, FileActions.actions[mimePart]);
} }
} }
if(type){//type is 'dir' or 'file' if (type) {//type is 'dir' or 'file'
if(FileActions.actions[type]){ if (FileActions.actions[type]) {
actions=$.extend( actions, FileActions.actions[type] ); actions = $.extend(actions, FileActions.actions[type]);
} }
} }
var filteredActions = {}; var filteredActions = {};
$.each(actions, function(name, action) { $.each(actions, function (name, action) {
if (action.permissions & permissions) { if (action.permissions & permissions) {
filteredActions[name] = action.action; filteredActions[name] = action.action;
} }
}); });
return filteredActions; return filteredActions;
}, },
getDefault:function(mime,type,permissions){ getDefault: function (mime, type, permissions) {
if(mime){ if (mime) {
var mimePart=mime.substr(0,mime.indexOf('/')); var mimePart = mime.substr(0, mime.indexOf('/'));
} }
var name=false; var name = false;
if(mime && FileActions.defaults[mime]){ if (mime && FileActions.defaults[mime]) {
name=FileActions.defaults[mime]; name = FileActions.defaults[mime];
}else if(mime && FileActions.defaults[mimePart]){ } else if (mime && FileActions.defaults[mimePart]) {
name=FileActions.defaults[mimePart]; name = FileActions.defaults[mimePart];
}else if(type && FileActions.defaults[type]){ } else if (type && FileActions.defaults[type]) {
name=FileActions.defaults[type]; name = FileActions.defaults[type];
}else{ } else {
name=FileActions.defaults.all; name = FileActions.defaults.all;
} }
var actions=this.get(mime,type,permissions); var actions = this.get(mime, type, permissions);
return actions[name]; return actions[name];
}, },
display:function(parent){ display: function (parent) {
FileActions.currentFile=parent; FileActions.currentFile = parent;
$('#fileList span.fileactions, #fileList td.date a.action').remove(); $('#fileList span.fileactions, #fileList td.date a.action').remove();
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').filterAttr('data-file', file).data('renaming')) {
return; return;
} }
parent.children('a.name').append('<span class="fileactions" />'); parent.children('a.name').append('<span class="fileactions" />');
var defaultAction=FileActions.getDefault(FileActions.getCurrentMimeType(),FileActions.getCurrentType(), FileActions.getCurrentPermissions()); var defaultAction = FileActions.getDefault(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
for(name in actions){ for (name in actions) {
// NOTE: Temporary fix to prevent rename action in root of Shared directory // NOTE: Temporary fix to prevent rename action in root of Shared directory
if (name == 'Rename' && $('#dir').val() == '/Shared') { if (name == 'Rename' && $('#dir').val() == '/Shared') {
continue; continue;
} }
if((name=='Download' || actions[name]!=defaultAction) && name!='Delete'){ if ((name == 'Download' || actions[name] != defaultAction) && name != 'Delete') {
var img=FileActions.icons[name]; var img = FileActions.icons[name];
if(img.call){ if (img.call) {
img=img(file); img = img(file);
} }
var html='<a href="#" class="action" style="display:none">'; var html = '<a href="#" class="action" style="display:none">';
if(img) { html+='<img src="'+img+'"/> '; } if (img) {
html += t('files', name) +'</a>'; html += '<img src="' + img + '"/> ';
var element=$(html); }
element.data('action',name); html += t('files', name) + '</a>';
element.click(function(event){ var element = $(html);
element.data('action', name);
element.click(function (event) {
event.stopPropagation(); event.stopPropagation();
event.preventDefault(); event.preventDefault();
var action=actions[$(this).data('action')]; var action = actions[$(this).data('action')];
var currentFile=FileActions.getCurrentFile(); var currentFile = FileActions.getCurrentFile();
FileActions.hide(); FileActions.hide();
action(currentFile); action(currentFile);
}); });
@ -98,94 +100,100 @@ var FileActions={
parent.find('a.name>span.fileactions').append(element); parent.find('a.name>span.fileactions').append(element);
} }
} }
if(actions['Delete']){ if (actions['Delete']) {
var img=FileActions.icons['Delete']; var img = FileActions.icons['Delete'];
if(img.call){ if (img.call) {
img=img(file); img = img(file);
} }
// NOTE: Temporary fix to allow unsharing of files in root of Shared folder // NOTE: Temporary fix to allow unsharing of files in root of Shared folder
if ($('#dir').val() == '/Shared') { if ($('#dir').val() == '/Shared') {
var html = '<a href="#" original-title="' + t('files', 'Unshare') + '" class="action delete" style="display:none" />'; var html = '<a href="#" original-title="' + t('files', 'Unshare') + '" class="action delete" style="display:none" />';
} else { } else {
var html='<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" style="display:none" />'; var html = '<a href="#" original-title="' + t('files', 'Delete') + '" class="action delete" style="display:none" />';
} }
var element=$(html); var element = $(html);
if(img){ if (img) {
element.append($('<img src="'+img+'"/>')); element.append($('<img src="' + img + '"/>'));
} }
element.data('action','Delete'); element.data('action', 'Delete');
element.click(function(event){ element.click(function (event) {
event.stopPropagation(); event.stopPropagation();
event.preventDefault(); event.preventDefault();
var action=actions[$(this).data('action')]; var action = actions[$(this).data('action')];
var currentFile=FileActions.getCurrentFile(); var currentFile = FileActions.getCurrentFile();
FileActions.hide(); FileActions.hide();
action(currentFile); action(currentFile);
}); });
element.hide(); element.hide();
parent.parent().children().last().append(element); parent.parent().children().last().append(element);
} }
$('#fileList .action').css('-o-transition-property','none');//temporarly disable $('#fileList .action').css('-o-transition-property', 'none');//temporarly disable
$('#fileList .action').fadeIn(200,function(){ $('#fileList .action').fadeIn(200, function () {
$('#fileList .action').css('-o-transition-property','opacity'); $('#fileList .action').css('-o-transition-property', 'opacity');
}); });
return false; return false;
}, },
hide:function(){ hide: function () {
$('#fileList span.fileactions, #fileList td.date a.action').fadeOut(200,function(){ $('#fileList span.fileactions, #fileList td.date a.action').fadeOut(200, function () {
$(this).remove(); $(this).remove();
}); });
}, },
getCurrentFile:function(){ getCurrentFile: function () {
return FileActions.currentFile.parent().attr('data-file'); return FileActions.currentFile.parent().attr('data-file');
}, },
getCurrentMimeType:function(){ getCurrentMimeType: function () {
return FileActions.currentFile.parent().attr('data-mime'); return FileActions.currentFile.parent().attr('data-mime');
}, },
getCurrentType:function(){ getCurrentType: function () {
return FileActions.currentFile.parent().attr('data-type'); return FileActions.currentFile.parent().attr('data-type');
}, },
getCurrentPermissions:function() { getCurrentPermissions: function () {
return FileActions.currentFile.parent().data('permissions'); return FileActions.currentFile.parent().data('permissions');
} }
}; };
$(document).ready(function(){ $(document).ready(function () {
if($('#allowZipDownload').val() == 1){ if ($('#allowZipDownload').val() == 1) {
var downloadScope = 'all'; var downloadScope = 'all';
} else { } else {
var downloadScope = 'file'; var downloadScope = 'file';
} }
FileActions.register(downloadScope,'Download', OC.PERMISSION_READ, function(){return OC.imagePath('core','actions/download');},function(filename){ FileActions.register(downloadScope, 'Download', OC.PERMISSION_READ, function () {
window.location=OC.filePath('files', 'ajax', 'download.php') + '?files='+encodeURIComponent(filename)+'&dir='+encodeURIComponent($('#dir').val()); return OC.imagePath('core', 'actions/download');
}, function (filename) {
window.location = OC.filePath('files', 'ajax', 'download.php') + '?files=' + encodeURIComponent(filename) + '&dir=' + encodeURIComponent($('#dir').val());
}); });
}); });
FileActions.register('all','Delete', OC.PERMISSION_DELETE, function(){return OC.imagePath('core','actions/delete');},function(filename){ FileActions.register('all', 'Delete', OC.PERMISSION_DELETE, function () {
if(Files.cancelUpload(filename)) { return OC.imagePath('core', 'actions/delete');
if(filename.substr){ }, function (filename) {
filename=[filename]; if (Files.cancelUpload(filename)) {
if (filename.substr) {
filename = [filename];
} }
$.each(filename,function(index,file){ $.each(filename, function (index, file) {
var filename = $('tr').filterAttr('data-file',file); var filename = $('tr').filterAttr('data-file', file);
filename.hide(); filename.hide();
filename.find('input[type="checkbox"]').removeAttr('checked'); filename.find('input[type="checkbox"]').removeAttr('checked');
filename.removeClass('selected'); filename.removeClass('selected');
}); });
procesSelection(); procesSelection();
}else{ } else {
FileList.do_delete(filename); FileList.do_delete(filename);
} }
$('.tipsy').remove(); $('.tipsy').remove();
}); });
// t('files', 'Rename') // t('files', 'Rename')
FileActions.register('all','Rename', OC.PERMISSION_UPDATE, function(){return OC.imagePath('core','actions/rename');},function(filename){ FileActions.register('all', 'Rename', OC.PERMISSION_UPDATE, function () {
return OC.imagePath('core', 'actions/rename');
}, function (filename) {
FileList.rename(filename); FileList.rename(filename);
}); });
FileActions.register('dir','Open', OC.PERMISSION_READ, '', function(filename){ FileActions.register('dir', 'Open', OC.PERMISSION_READ, '', function (filename) {
window.location=OC.linkTo('files', 'index.php') + '?dir='+encodeURIComponent($('#dir').val()).replace(/%2F/g, '/')+'/'+encodeURIComponent(filename); window.location = OC.linkTo('files', 'index.php') + '?dir=' + encodeURIComponent($('#dir').val()).replace(/%2F/g, '/') + '/' + encodeURIComponent(filename);
}); });
FileActions.setDefault('dir','Open'); FileActions.setDefault('dir', 'Open');