fx-compat: Item box: Fix item type menulist

- Use IDs as list item values
- Use addEventListener() so events are actually received
- Put menulist inside <td>
    * This causes a small appearance regression at the moment because
      <td> margins/padding are a bit off, but that issue is visible on
      all other fields already.
This commit is contained in:
Abe Jellinek 2022-05-25 12:51:15 -06:00
parent c2ce5c7596
commit 3566d1fc1f
2 changed files with 12 additions and 10 deletions

View file

@ -752,26 +752,28 @@
}
addItemTypeMenu() {
var td = document.createElement('td');
var menulist = document.createXULElement("menulist", { is: "menulist-item-types" });
menulist.id = "item-type-menu";
menulist.className = "zotero-clicky";
menulist.onCommand = (event) => {
menulist.addEventListener('command', (event) => {
var target = event.target;
this.changeTypeTo(target.value, target);
};
menulist.onFocus = (event) => {
});
menulist.addEventListener('focus', () => {
this.ensureElementIsVisible(menulist);
};
menulist.onKeyPress = (event) => {
});
menulist.addEventListener('keypress', (event) => {
if (event.keyCode == event.DOM_VK_TAB) {
this.itemTypeMenuTab(event);
}
};
this._infoTable.firstChild.appendChild(menulist);
});
td.appendChild(menulist);
this._infoTable.firstChild.appendChild(td);
}
updateItemTypeMenuSelection() {
this.itemTypeMenu.value = this.item.itemType;
this.itemTypeMenu.value = this.item.itemTypeID;
}
addDynamicRow(label, value, beforeElement) {

View file

@ -54,7 +54,7 @@
var itemTypes = [];
for (let i = 0; i < t.length; i++) {
itemTypes.push({
name: t[i].name,
id: t[i].id,
localized: Zotero.ItemTypes.getLocalizedString(t[i].id)
});
}
@ -64,7 +64,7 @@
for (let i = 0; i < itemTypes.length; i++) {
let name = itemTypes[i].name;
if (name != 'attachment' && name != 'note' && name != 'annotation') {
this.appendItem(itemTypes[i].localized, itemTypes[i].name);
this.appendItem(itemTypes[i].localized, itemTypes[i].id);
}
}