我向elFinder添加了一个新的工具栏按钮和一个新的上下文菜单项。
很好地工作,但只有在选择一个普通文件时才应启用此项。因此,当没有选择文件时应该变暗,当选择多个文件或者选择目录时应该变暗。
我了解到elFinder.prototype.commands.mycmd
我应该将this.getstate
返回值设置为:
0
如果应启用工具栏/上下文菜单项并-1
是否应禁用所以,现在有了这个:
EL
Finder.prototype.commands.mycmd= function() {
var self = this,
fm = self.fm;
self.disableOnSearch = true;
self.title = 'mycmd';
self.getstate = function() {
// need help here to add the "directory is selected check"
return fm.selected().length == 1 ? 0 : -1;
}
self.exec = function() {
alert("hello");
}
}
不幸的是,我只知道Perl,所以通过所有elFinder的javascript代码挖掘出来以了解如何掌握这个条件有点困难。
深入了解任何人elFinder
以帮助我解决这个问题?
答案 0 :(得分:2)
只需在elFinder download.js
中找到解决方案。
这有效 - 至少现在......;)
elFinder.prototype.commands.mycmd= function() {
var self = this,
fm = self.fm;
self.disableOnSearch = true;
filter = function(hashes) {
return $.map(self.files(hashes), function(f) { return f.mime == 'directory' ? null : f });
};
self.title = 'mycmd';
self.getstate = function() {
var sel = self.fm.selected(),
cnt = sel.length;
return !self._disabled && cnt == 1 && cnt == filter(sel).length ? 0 : -1;
}
self.exec = function() {
alert("hello");
}
}