如何在elFinder中检测多项选择



我在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足以帮助我应对这种情况的人吗?

只需在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");
    }
}

相关内容

  • 没有找到相关文章

最新更新