Fix conversion between fields and bookmarks

This commit is contained in:
Simon Kornblith 2012-01-14 14:25:08 -05:00
parent c5b4043155
commit 61a987303f

View File

@ -30,6 +30,14 @@ const RESELECT_KEY_ITEM_KEY = 2;
const RESELECT_KEY_ITEM_ID = 3; const RESELECT_KEY_ITEM_ID = 3;
const DATA_VERSION = 3; const DATA_VERSION = 3;
// Specifies that citations should only be updated if changed
const FORCE_CITATIONS_FALSE = 0;
// Specifies that citations should only be updated if formattedText has changed from what is encoded
// in the field code
const FORCE_CITATIONS_REGENERATE = 1;
// Specifies that citations should be reset regardless of whether formattedText has changed
const FORCE_CITATIONS_RESET_TEXT = 2;
// this is used only for update checking // this is used only for update checking
const INTEGRATION_PLUGINS = ["zoteroMacWordIntegration@zotero.org", const INTEGRATION_PLUGINS = ["zoteroMacWordIntegration@zotero.org",
"zoteroOpenOfficeIntegration@zotero.org", "zoteroWinWordIntegration@zotero.org"]; "zoteroOpenOfficeIntegration@zotero.org", "zoteroWinWordIntegration@zotero.org"];
@ -693,7 +701,7 @@ Zotero.Integration.Document.prototype.addBibliography = function() {
field = fieldGetter.addField(); field = fieldGetter.addField();
field.setCode("BIBL"); field.setCode("BIBL");
fieldGetter.updateSession(function() { fieldGetter.updateSession(function() {
fieldGetter.updateDocument(false, true, false, function() { fieldGetter.updateDocument(FORCE_CITATIONS_FALSE, true, false, function() {
Zotero.Integration.complete(me._doc); Zotero.Integration.complete(me._doc);
}); });
}); });
@ -726,7 +734,7 @@ Zotero.Integration.Document.prototype.editBibliography = function(callback) {
fieldGetter.updateSession(function() { fieldGetter.updateSession(function() {
me._session.editBibliography(this._doc, function() { me._session.editBibliography(this._doc, function() {
me._doc.activate(); me._doc.activate();
fieldGetter.updateDocument(false, true, false, function() { fieldGetter.updateDocument(FORCE_CITATIONS_FALSE, true, false, function() {
Zotero.Integration.complete(me._doc); Zotero.Integration.complete(me._doc);
}); });
}); });
@ -744,7 +752,7 @@ Zotero.Integration.Document.prototype.refresh = function() {
// Send request, forcing update of citations and bibliography // Send request, forcing update of citations and bibliography
var fieldGetter = new Zotero.Integration.Fields(me._session, me._doc); var fieldGetter = new Zotero.Integration.Fields(me._session, me._doc);
fieldGetter.updateSession(function() { fieldGetter.updateSession(function() {
fieldGetter.updateDocument(true, true, false, function() { fieldGetter.updateDocument(FORCE_CITATIONS_REGENERATE, true, false, function() {
Zotero.Integration.complete(me._doc); Zotero.Integration.complete(me._doc);
}); });
}); });
@ -822,7 +830,8 @@ Zotero.Integration.Document.prototype.setDocPrefs = function() {
// refresh contents // refresh contents
fieldGetter = new Zotero.Integration.Fields(me._session, me._doc); fieldGetter = new Zotero.Integration.Fields(me._session, me._doc);
fieldGetter.updateSession(function() { fieldGetter.updateSession(function() {
fieldGetter.updateDocument(true, true, true, function() { fieldGetter.updateDocument(FORCE_CITATIONS_RESET_TEXT, true, true,
function() {
Zotero.Integration.complete(me._doc); Zotero.Integration.complete(me._doc);
}); });
}); });
@ -1223,7 +1232,8 @@ Zotero.Integration.Fields.prototype._updateDocument = function(forceCitations, f
isRich = true; isRich = true;
} }
if(citation.properties.formattedCitation !== formattedCitation) { if(forceCitations === FORCE_CITATIONS_RESET_TEXT
|| citation.properties.formattedCitation !== formattedCitation) {
// Check if citation has been manually modified // Check if citation has been manually modified
if(!ignoreCitationChanges && citation.properties.plainCitation) { if(!ignoreCitationChanges && citation.properties.plainCitation) {
var plainCitation = field.getText(); var plainCitation = field.getText();
@ -1503,7 +1513,7 @@ Zotero.Integration.CitationEditInterface.prototype = {
} }
} }
me._fields.updateDocument(false, false, false, me._doneCallback); me._fields.updateDocument(FORCE_CITATIONS_FALSE, false, false, me._doneCallback);
}); });
} else { } else {
if(this._deleteOnCancel) this._field.delete(); if(this._deleteOnCancel) this._field.delete();