Skip to content
Snippets Groups Projects
Select Git revision
  • c8801a41d871ae4633a6760a98dcdca71af92886
  • master default protected
2 results

filesystem.php

Blame
  • fileactions.js 6.34 KiB
    var FileActions = {
    	actions: {},
    	defaults: {},
    	icons: {},
    	currentFile: null,
    	register: function (mime, name, permissions, icon, action) {
    		if (!FileActions.actions[mime]) {
    			FileActions.actions[mime] = {};
    		}
    		if (!FileActions.actions[mime][name]) {
    			FileActions.actions[mime][name] = {};
    		}
    		FileActions.actions[mime][name]['action'] = action;
    		FileActions.actions[mime][name]['permissions'] = permissions;
    		FileActions.icons[name] = icon;
    	},
    	setDefault: function (mime, name) {
    		FileActions.defaults[mime] = name;
    	},
    	get: function (mime, type, permissions) {
    		var actions = {};
    		if (FileActions.actions.all) {
    			actions = $.extend(actions, FileActions.actions.all);
    		}
    		if (mime) {
    			if (FileActions.actions[mime]) {
    				actions = $.extend(actions, FileActions.actions[mime]);
    			}
    			var mimePart = mime.substr(0, mime.indexOf('/'));
    			if (FileActions.actions[mimePart]) {
    				actions = $.extend(actions, FileActions.actions[mimePart]);
    			}
    		}
    		if (type) {//type is 'dir' or 'file'
    			if (FileActions.actions[type]) {
    				actions = $.extend(actions, FileActions.actions[type]);
    			}
    		}
    		var filteredActions = {};
    		$.each(actions, function (name, action) {
    			if (action.permissions & permissions) {
    				filteredActions[name] = action.action;
    			}
    		});
    		return filteredActions;
    	},
    	getDefault: function (mime, type, permissions) {
    		if (mime) {
    			var mimePart = mime.substr(0, mime.indexOf('/'));
    		}
    		var name = false;
    		if (mime && FileActions.defaults[mime]) {
    			name = FileActions.defaults[mime];
    		} else if (mime && FileActions.defaults[mimePart]) {
    			name = FileActions.defaults[mimePart];
    		} else if (type && FileActions.defaults[type]) {
    			name = FileActions.defaults[type];
    		} else {
    			name = FileActions.defaults.all;
    		}
    		var actions = this.get(mime, type, permissions);
    		return actions[name];
    	},
    	display: function (parent) {
    		FileActions.currentFile = parent;
    		var actions = FileActions.get(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
    		var file = FileActions.getCurrentFile();
    		if ($('tr').filterAttr('data-file', file).data('renaming')) {
    			return;
    		}