/**
* @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)));
};
};