Fix library sorting in QuickFormat dialog
This commit is contained in:
parent
5859cfc61e
commit
fdac7c450f
|
@ -312,21 +312,21 @@ var Zotero_QuickFormat = new function () {
|
|||
Zotero.debug("Searched cited items");
|
||||
}
|
||||
|
||||
_updateItemList(citedItemsMatchingSearch, searchResultIDs, isAsync);
|
||||
_updateItemList(citedItems, citedItemsMatchingSearch, searchResultIDs, isAsync);
|
||||
});
|
||||
|
||||
if(!completed) {
|
||||
// We are going to have to wait until items have been retrieved from the document.
|
||||
// Until then, show item list without cited items.
|
||||
Zotero.debug("Getting cited items asynchronously");
|
||||
_updateItemList(false, searchResultIDs);
|
||||
_updateItemList(false, false, searchResultIDs);
|
||||
isAsync = true;
|
||||
} else {
|
||||
Zotero.debug("Got cited items synchronously");
|
||||
}
|
||||
} else {
|
||||
// No search conditions, so just clear the box
|
||||
_updateItemList([], []);
|
||||
_updateItemList([], [], []);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -347,7 +347,7 @@ var Zotero_QuickFormat = new function () {
|
|||
/**
|
||||
* Updates the item list
|
||||
*/
|
||||
function _updateItemList(citedItems, searchResultIDs, preserveSelection) {
|
||||
function _updateItemList(citedItems, citedItemsMatchingSearch, searchResultIDs, preserveSelection) {
|
||||
var selectedIndex = 1, previousItemID;
|
||||
|
||||
// Do this so we can preserve the selected item after cited items have been loaded
|
||||
|
@ -365,13 +365,8 @@ var Zotero_QuickFormat = new function () {
|
|||
selectedIndex = 2;
|
||||
} else if(citedItems.length) {
|
||||
// We have cited items
|
||||
referenceBox.appendChild(_buildListSeparator(Zotero.getString("integration.cited")));
|
||||
for(var i=0, n=citedItems.length; i<n; i++) {
|
||||
var citedItem = citedItems[i];
|
||||
if(i < 50) {
|
||||
referenceBox.appendChild(_buildListItem(citedItem));
|
||||
}
|
||||
|
||||
// Tabulate number of items in document for each library
|
||||
if(!citedItem.cslItemID) {
|
||||
var libraryID = citedItem.libraryID ? citedItem.libraryID : 0;
|
||||
|
@ -382,6 +377,14 @@ var Zotero_QuickFormat = new function () {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(citedItemsMatchingSearch && citedItemsMatchingSearch.length) {
|
||||
referenceBox.appendChild(_buildListSeparator(Zotero.getString("integration.cited")));
|
||||
for(var i=0; i<Math.min(citedItemsMatchingSearch.length, 50); i++) {
|
||||
var citedItem = citedItemsMatchingSearch[i];
|
||||
referenceBox.appendChild(_buildListItem(citedItem));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Also take into account items cited in this citation. This means that the sorting isn't
|
||||
|
@ -399,7 +402,7 @@ var Zotero_QuickFormat = new function () {
|
|||
}
|
||||
}
|
||||
|
||||
if(searchResultIDs.length && (!citedItems || citedItems.length < 50)) {
|
||||
if(searchResultIDs.length && (!citedItemsMatchingSearch || citedItemsMatchingSearch.length < 50)) {
|
||||
var items = Zotero.Items.get(searchResultIDs);
|
||||
|
||||
items.sort(function _itemSort(a, b) {
|
||||
|
@ -436,7 +439,7 @@ var Zotero_QuickFormat = new function () {
|
|||
});
|
||||
|
||||
var previousLibrary = -1;
|
||||
for(var i=0, n=Math.min(items.length, citedItems ? 50-citedItems.length : 50); i<n; i++) {
|
||||
for(var i=0, n=Math.min(items.length, citedItemsMatchingSearch ? 50-citedItemsMatchingSearch.length : 50); i<n; i++) {
|
||||
var item = items[i], libraryID = item.libraryID;
|
||||
|
||||
if(previousLibrary != libraryID) {
|
||||
|
@ -455,7 +458,7 @@ var Zotero_QuickFormat = new function () {
|
|||
}
|
||||
|
||||
_resize();
|
||||
if((citedItems && citedItems.length) || searchResultIDs.length) {
|
||||
if((citedItemsMatchingSearch && citedItemsMatchingSearch.length) || searchResultIDs.length) {
|
||||
referenceBox.selectedIndex = selectedIndex;
|
||||
referenceBox.ensureIndexIsVisible(selectedIndex);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user