From 588c4f5e5d2fc4d9557f6a3c4e3a39148cca3760 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adomas=20Ven=C4=8Dkauskas?= Date: Thu, 12 Jun 2025 14:28:37 +0300 Subject: [PATCH] Fix Citation Explorer breaking when library item data not loaded --- .../zotero/integration/citationExplorer.js | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/chrome/content/zotero/integration/citationExplorer.js b/chrome/content/zotero/integration/citationExplorer.js index f92d0879bb..ed8e8c44f5 100644 --- a/chrome/content/zotero/integration/citationExplorer.js +++ b/chrome/content/zotero/integration/citationExplorer.js @@ -118,6 +118,22 @@ window.ZoteroDocumentCitations = { citations = Object.values(io.citations); items = io.items; uncitedItems = io.uncitedItems; + + // Load library data for all items + let librariesNeeded = new Set(); + for (let item of [...items, ...uncitedItems]) { + if (item.libraryID) { + librariesNeeded.add(item.libraryID); + } + } + for (let libraryID of librariesNeeded) { + let library = Zotero.Libraries.get(libraryID); + if (!library.getDataLoaded('item')) { + Zotero.debug("Waiting for items to load for library " + library.libraryID); + await library.waitForDataLoad('item'); + } + } + await this._initMappings(); await this.refreshCitationList(); await this.refreshItemList(); @@ -396,6 +412,15 @@ window.ZoteroDocumentCitations = { async addToLibraryAndLink() { var collectionID = _addToTarget.objectType == 'collection' ? _addToTarget.id : undefined; + + // Load library data + let targetLibraryID = _addToTarget.libraryID || _addToTarget.library.libraryID; + let library = Zotero.Libraries.get(targetLibraryID); + if (!library.getDataLoaded('item')) { + Zotero.debug("Waiting for items to load for library " + library.libraryID); + await library.waitForDataLoad('item'); + } + for (let index of itemList.selection.selected) { let treeRow = itemList.getRow(index); const oldItemID = treeRow.id;