From 501d6c6e77d3d61c8553e9cbed416020c4d5eba4 Mon Sep 17 00:00:00 2001 From: Simon Kornblith Date: Thu, 21 Aug 2008 21:30:36 +0000 Subject: [PATCH] closes #1098, Edit Citation not working in new document --- chrome/content/zotero/addCitationDialog.js | 2 +- chrome/content/zotero/xpcom/integration.js | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/chrome/content/zotero/addCitationDialog.js b/chrome/content/zotero/addCitationDialog.js index 52fc0e152..8bcbb760f 100644 --- a/chrome/content/zotero/addCitationDialog.js +++ b/chrome/content/zotero/addCitationDialog.js @@ -258,7 +258,7 @@ var Zotero_Citation_Dialog = new function () { * Sorts the list of citations */ function sortCitation() { - io.citation.properties.sort = _sortCheckbox.checked; + io.citation.properties.sort = _sortCheckbox && _sortCheckbox.checked; if(_sortCheckbox.checked) { _getCitation(); diff --git a/chrome/content/zotero/xpcom/integration.js b/chrome/content/zotero/xpcom/integration.js index 679471294..1afa3f102 100644 --- a/chrome/content/zotero/xpcom/integration.js +++ b/chrome/content/zotero/xpcom/integration.js @@ -1088,6 +1088,16 @@ Zotero.Integration.Session.prototype.editCitation = function(index, citation) { var me = this; var io = new function() { this.wrappedJSObject = this; } + // if there's already a citation, make sure we have item IDs in addition to keys + if(citation) { + for each(var citationItem in citation.citationItems) { + if(citationItem.key && !citationItem.itemID) { + var item = Zotero.Items.getByKey([citationItem.key]); + if(item) citationItem.itemID = item.itemID; + } + } + } + // create object to hold citation io.citation = (citation ? citation.clone() : this.style.createCitation()); io.citation.properties.index = parseInt(index, 10);