commit c7e92b6e1607dcd3d294cc7bed71d6c8e2887aea
parent 8af3a30fa4df1a8803e9f4b58b8b92df9c850f34
Author: Simon Kornblith <simon@simonster.com>
Date: Fri, 11 Feb 2011 21:55:48 +0000
don't show menu separator when no locate engines are available
Diffstat:
1 file changed, 21 insertions(+), 20 deletions(-)
diff --git a/chrome/content/zotero/locateMenu.js b/chrome/content/zotero/locateMenu.js
@@ -76,29 +76,30 @@ var Zotero_LocateMenu = new function() {
// check for custom locate engines
var customEngines = Zotero.LocateManager.getVisibleEngines();
- if(customEngines.length) {
- locateMenu.appendChild(document.createElement("menuseparator"));
-
- // add engines to menu
- for each(var engine in customEngines) {
- // require a submission for at least one selected item
- var canSubmit = false;
- for each(var item in selectedItems) {
- if(engine.getItemSubmission(item)) {
- canSubmit = true;
- break;
- }
- }
-
- if(canSubmit) {
- var menuitem = _createMenuItem(engine.name, null, engine.description);
- menuitem.setAttribute("class", "menuitem-iconic");
- menuitem.setAttribute("image", engine.icon);
- locateMenu.appendChild(menuitem);
- menuitem.addEventListener("command", _locateItem, false);
+ var availableEngines = [];
+
+ // check which engines can translate an item
+ for each(var engine in customEngines) {
+ // require a submission for at least one selected item
+ for each(var item in selectedItems) {
+ if(engine.getItemSubmission(item)) {
+ availableEngines.push(engine);
+ break;
}
}
}
+
+ // add engines that are available for selected items
+ if(availableEngines.length) {
+ locateMenu.appendChild(document.createElement("menuseparator"));
+ for each(var engine in availableEngines) {
+ var menuitem = _createMenuItem(engine.name, null, engine.description);
+ menuitem.setAttribute("class", "menuitem-iconic");
+ menuitem.setAttribute("image", engine.icon);
+ locateMenu.appendChild(menuitem);
+ menuitem.addEventListener("command", _locateItem, false);
+ }
+ }
} else {
// add "no items selected"
menuitem = _createMenuItem(Zotero.getString("pane.item.selected.zero"), "no-items-selected");