2013-11-27 69 views
1

我向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足夠深,以幫助我的條件?

回答

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