diff --git a/chrome/content/zotero/xpcom/integration.js b/chrome/content/zotero/xpcom/integration.js index 2edea3b94..bf9b11aa7 100644 --- a/chrome/content/zotero/xpcom/integration.js +++ b/chrome/content/zotero/xpcom/integration.js @@ -1133,26 +1133,30 @@ Zotero.Integration.Fields.prototype.addEditCitation = Zotero.Promise.coroutine(f // ------------------- // Preparing stuff to pass into CitationEditInterface - var fields = yield this.get(); - for (var fieldIndex = 0; fieldIndex < fields.length; fieldIndex++) { - if (fields[fieldIndex].equals(field._field)) { - // This is needed, because LibreOffice integration plugin caches the field code instead of asking - // the document every time when calling #getCode(). - field._field = fields[fieldIndex]; - break; + var fieldIndexPromise = this.get().then(function(fields) { + for (var i=0, n=fields.length; i { return citationsByItemID[itemID] && citationsByItemID[itemID].length // Exclude the present item && (citationsByItemID[itemID].length > 1 - || citationsByItemID[itemID][0].properties.zoteroIndex !== this._fieldIndex); + || citationsByItemID[itemID][0].properties.zoteroIndex !== fieldIndex); }); // Sort all previously cited items at top, and all items cited later at bottom @@ -1264,12 +1270,12 @@ Zotero.Integration.CitationEditInterface.prototype = { var indexA = citationsByItemID[a][0].properties.zoteroIndex, indexB = citationsByItemID[b][0].properties.zoteroIndex; - if(indexA >= this._fieldIndex){ - if(indexB < this._fieldIndex) return 1; + if (indexA >= fieldIndex){ + if(indexB < fieldIndex) return 1; return indexA - indexB; } - if(indexB > this._fieldIndex) return -1; + if (indexB > fieldIndex) return -1; return indexB - indexA; });