mirror of
https://github.com/zotero/zotero.git
synced 2026-10-05 02:43:38 +00:00
Fix locate button for annotation item (#5298)
This commit is contained in:
parent
b0506aafe1
commit
e18bf2165a
1 changed files with 17 additions and 6 deletions
|
|
@ -40,7 +40,7 @@ var Zotero_LocateMenu = new function() {
|
|||
locateMenu.removeChild(locateMenu.firstChild);
|
||||
}
|
||||
|
||||
var selectedItems = _getSelectedItems();
|
||||
var selectedItems = await _getSelectedItems();
|
||||
|
||||
if(selectedItems.length) {
|
||||
await _addViewOptions(locateMenu, selectedItems, true, true, true);
|
||||
|
|
@ -99,7 +99,7 @@ var Zotero_LocateMenu = new function() {
|
|||
*/
|
||||
this.buildContextMenu = Zotero.Promise.coroutine(function* (menu, showIcons) {
|
||||
// get selected items
|
||||
var selectedItems = _getSelectedItems();
|
||||
var selectedItems = yield _getSelectedItems();
|
||||
|
||||
// if no items selected or >20 items selected, stop now
|
||||
if(!selectedItems.length || selectedItems.length > 20) return;
|
||||
|
|
@ -298,9 +298,9 @@ var Zotero_LocateMenu = new function() {
|
|||
/**
|
||||
* Locate selected items
|
||||
*/
|
||||
this.locateItem = function(event, selectedItems) {
|
||||
this.locateItem = async function(event, selectedItems) {
|
||||
if(!selectedItems) {
|
||||
selectedItems = _getSelectedItems();
|
||||
selectedItems = await _getSelectedItems();
|
||||
}
|
||||
|
||||
// find selected engine
|
||||
|
|
@ -344,12 +344,23 @@ var Zotero_LocateMenu = new function() {
|
|||
/**
|
||||
* Get the first 50 selected items
|
||||
*/
|
||||
function _getSelectedItems() {
|
||||
async function _getSelectedItems() {
|
||||
var allSelectedItems = ZoteroPane.getSelectedItems();
|
||||
var selectedItems = [];
|
||||
while (selectedItems.length < 50 && allSelectedItems.length) {
|
||||
var item = allSelectedItems.shift();
|
||||
if (!item.isNote() && !item.isAnnotation()) selectedItems.push(item);
|
||||
if (item.isAnnotation()) {
|
||||
let attachment = item.parentItem;
|
||||
if (attachment.parentItem && attachment === await attachment.parentItem.getBestAttachment()) {
|
||||
selectedItems.push(attachment.parentItem);
|
||||
}
|
||||
else {
|
||||
selectedItems.push(attachment);
|
||||
}
|
||||
}
|
||||
else if (!item.isNote()) {
|
||||
selectedItems.push(item);
|
||||
}
|
||||
}
|
||||
return selectedItems;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue