additional class is added to the file actions called e.g. 'action-share', 'action-rename'

in order to allow proper translations of the action's display name an additional parameter has been added to the register function
This commit is contained in:
Thomas Müller 2014-03-17 20:15:10 +01:00
parent ac48563efd
commit ea8705bac8
2 changed files with 28 additions and 12 deletions

View File

@ -15,21 +15,33 @@ var FileActions = {
defaults: {},
icons: {},
currentFile: null,
register: function (mime, name, permissions, icon, action) {
register: function (mime, name, permissions, icon, action, displayName) {
if (!FileActions.actions[mime]) {
FileActions.actions[mime] = {};
}
if (!FileActions.actions[mime][name]) {
FileActions.actions[mime][name] = {};
}
if (!displayName) {
displayName = t('files', name);
}
FileActions.actions[mime][name]['action'] = action;
FileActions.actions[mime][name]['permissions'] = permissions;
FileActions.actions[mime][name]['displayName'] = displayName;
FileActions.icons[name] = icon;
},
setDefault: function (mime, name) {
FileActions.defaults[mime] = name;
},
get: function (mime, type, permissions) {
var actions = this.getActions(mime, type, permissions);
var filteredActions = {};
$.each(actions, function (name, action) {
filteredActions[name] = action.action;
});
return filteredActions;
},
getActions: function (mime, type, permissions) {
var actions = {};
if (FileActions.actions.all) {
actions = $.extend(actions, FileActions.actions.all);
@ -51,7 +63,7 @@ var FileActions = {
var filteredActions = {};
$.each(actions, function (name, action) {
if (action.permissions & permissions) {
filteredActions[name] = action.action;
filteredActions[name] = action;
}
});
return filteredActions;
@ -82,7 +94,7 @@ var FileActions = {
*/
display: function (parent, triggerEvent) {
FileActions.currentFile = parent;
var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
var actions = FileActions.getActions(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
var file = FileActions.getCurrentFile();
var nameLinks;
if (FileList.findFileEl(file).data('renaming')) {
@ -105,15 +117,16 @@ var FileActions = {
event.data.actionFunc(file);
};
var addAction = function (name, action) {
var addAction = function (name, action, displayName) {
// NOTE: Temporary fix to prevent rename action in root of Shared directory
if (name === 'Rename' && $('#dir').val() === '/Shared') {
return true;
}
if ((name === 'Download' || action !== defaultAction) && name !== 'Delete') {
var img = FileActions.icons[name],
actionText = t('files', name),
actionText = displayName,
actionContainer = 'a.name>span.fileactions';
if (name === 'Rename') {
@ -125,7 +138,7 @@ var FileActions = {
if (img.call) {
img = img(file);
}
var html = '<a href="#" class="action" data-action="' + name + '">';
var html = '<a href="#" class="action action-' + name.toLowerCase() + '" data-action="' + name + '">';
if (img) {
html += '<img class ="svg" src="' + img + '" />';
}
@ -133,8 +146,7 @@ var FileActions = {
var element = $(html);
element.data('action', name);
//alert(element);
element.on('click', {a: null, elem: parent, actionFunc: actions[name]}, actionHandler);
element.on('click', {a: null, elem: parent, actionFunc: actions[name].action}, actionHandler);
parent.find(actionContainer).append(element);
}
@ -142,12 +154,15 @@ var FileActions = {
$.each(actions, function (name, action) {
if (name !== 'Share') {
addAction(name, action);
displayName = action.displayName;
ah = action.action;
addAction(name, ah, displayName);
}
});
if(actions.Share && !($('#dir').val() === '/' && file === 'Shared')){
// t('files', 'Share')
addAction('Share', actions.Share);
displayName = t('files', 'Share');
addAction('Share', actions.Share, displayName);
}
// remove the existing delete action

View File

@ -11,7 +11,7 @@ $(document).ready(function(){
// Add versions button to 'files/index.php'
FileActions.register(
'file'
, t('files_versions', 'Versions')
, 'Versions'
, OC.PERMISSION_UPDATE
, function() {
// Specify icon for hitory button
@ -36,6 +36,7 @@ $(document).ready(function(){
createVersionsDropdown(filename, file);
}
}
, t('files_versions', 'Versions')
);
}