/** * @class elFinder command "copy". * Put files in filemanager clipboard. * * @type elFinder.command * @author Dmitry (dio) Levashov */ elFinder.prototype.commands.copy = function() { "use strict"; this.shortcuts = [{ pattern : 'ctrl+c ctrl+insert' }]; this.getstate = function(select) { var sel = this.files(select), cnt = sel.length, filter = function(files) { var fres = true; return $.grep(files, function(f) { fres = fres && f.read ? true : false; return fres; }); }; return cnt && filter(sel).length == cnt ? 0 : -1; }; this.exec = function(hashes) { var fm = this.fm, dfrd = $.Deferred() .fail(function(error) { fm.error(error); }); $.each(this.files(hashes), function(i, file) { if (! file.read) { return !dfrd.reject(['errCopy', file.name, 'errPerm']); } }); return dfrd.state() == 'rejected' ? dfrd : dfrd.resolve(fm.clipboard(this.hashes(hashes))); }; };