Make item-specific fields override base fields when specified

This commit is contained in:
Simon Kornblith 2012-10-03 14:53:51 -04:00
parent bd75d95da9
commit dcfdf27c0b
2 changed files with 9 additions and 2 deletions

View File

@ -385,8 +385,13 @@ Zotero.Translate.ItemSaver.prototype = {
// try to map from base field
if(Zotero.ItemFields.isBaseField(fieldID)) {
fieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(typeID, fieldID);
// Skip mapping if item field already exists
var fieldName = Zotero.ItemFields.getName(fieldID);
if(item[fieldName]) continue;
if(fieldID) {
Zotero.debug("Translate: Mapping "+field+" to "+Zotero.ItemFields.getName(fieldID), 5);
Zotero.debug("Translate: Mapping "+field+" to "+fieldName, 5);
}
}

View File

@ -1262,7 +1262,9 @@ Zotero.Utilities = {
// map from base field if possible
if((itemFieldID = Zotero.ItemFields.getFieldIDFromTypeAndBase(typeID, fieldID))) {
newItem[Zotero.ItemFields.getName(itemFieldID)] = val;
var fieldName = Zotero.ItemFields.getName(itemFieldID);
// Only map if item field does not exist
if(!newItem[fieldName]) newItem[fieldName] = val;
continue; // already know this is valid
}