Fix problems with two-field creator autocomplete and multiword last names getting moved incorrectly to the firstname field
This commit is contained in:
parent
62f9c0d6cc
commit
5d8924b747
|
@ -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);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user