|
|
|
@ -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
|
|
|
|
|