Fix problems with two-field creator autocomplete and multiword last names getting moved incorrectly to the firstname field

This commit is contained in:
Dan Stillman 2006-10-24 19:39:52 +00:00
parent 62f9c0d6cc
commit 5d8924b747

View File

@ -486,7 +486,6 @@ var ZoteroItemPane = new function()
// Name // Name
var firstlast = document.createElement("hbox"); var firstlast = document.createElement("hbox");
firstlast.setAttribute("flex","1"); firstlast.setAttribute("flex","1");
var tabindex = _tabIndexMinCreators + (_creatorCount * 2); var tabindex = _tabIndexMinCreators + (_creatorCount * 2);
var lastNameLabel = firstlast.appendChild( var lastNameLabel = firstlast.appendChild(
createValueElement( createValueElement(
@ -600,11 +599,14 @@ var ZoteroItemPane = new function()
// Hide first name field and prepend to last name field // Hide first name field and prepend to last name field
firstName.setAttribute('hidden', true); firstName.setAttribute('hidden', true);
comma.setAttribute('hidden', true); comma.setAttribute('hidden', true);
var first = _getFieldValue(firstName);
if (first && first != _defaultFirstName) if (!initial){
{ var first = _getFieldValue(firstName);
var last = _getFieldValue(lastName); if (first && first != _defaultFirstName)
_setFieldValue(lastName, first + ' ' + last); {
var last = _getFieldValue(lastName);
_setFieldValue(lastName, first + ' ' + last);
}
} }
if (_getFieldValue(lastName) == _defaultLastName) if (_getFieldValue(lastName) == _defaultLastName)
@ -629,16 +631,18 @@ var ZoteroItemPane = new function()
_tabIndexMaxCreators++; _tabIndexMaxCreators++;
} }
// Move all but last word to first name field and show it if (!initial){
var last = _getFieldValue(lastName); // Move all but last word to first name field and show it
if (last && last != _defaultFullName) var last = _getFieldValue(lastName);
{ if (last && last != _defaultFullName)
var lastNameRE = /(.*?)[ ]*([^ ]+[ ]*)$/;
var parts = lastNameRE.exec(last);
if (parts[2] && parts[2] != last)
{ {
_setFieldValue(lastName, parts[2]); var lastNameRE = /(.*?)[ ]*([^ ]+[ ]*)$/;
_setFieldValue(firstName, parts[1]); var parts = lastNameRE.exec(last);
if (parts[2] && parts[2] != last)
{
_setFieldValue(lastName, parts[2]);
_setFieldValue(firstName, parts[1]);
}
} }
} }
@ -903,7 +907,13 @@ var ZoteroItemPane = new function()
else if (otherField=='lastName'){ else if (otherField=='lastName'){
var label = textbox.previousSibling.previousSibling; var label = textbox.previousSibling.previousSibling;
} }
label.firstChild.nodeValue = creator[otherField];
if (label.firstChild){
label.firstChild.nodeValue = creator[otherField];
}
else {
label.value = creator[otherField];
}
var row = textbox.parentNode.parentNode.parentNode; var row = textbox.parentNode.parentNode.parentNode;
var otherFields = ZoteroItemPane.getCreatorFields(row); var otherFields = ZoteroItemPane.getCreatorFields(row);