don't show menu separator when no locate engines are available

This commit is contained in:
Simon Kornblith 2011-02-11 21:55:48 +00:00
parent 8af3a30fa4
commit c7e92b6e16

View file

@ -76,21 +76,23 @@ var Zotero_LocateMenu = new function() {
// check for custom locate engines
var customEngines = Zotero.LocateManager.getVisibleEngines();
if(customEngines.length) {
locateMenu.appendChild(document.createElement("menuseparator"));
var availableEngines = [];
// add engines to menu
// check which engines can translate an item
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;
availableEngines.push(engine);
break;
}
}
}
if(canSubmit) {
// 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);
@ -98,7 +100,6 @@ var Zotero_LocateMenu = new function() {
menuitem.addEventListener("command", _locateItem, false);
}
}
}
} else {
// add "no items selected"
menuitem = _createMenuItem(Zotero.getString("pane.item.selected.zero"), "no-items-selected");