Default to the field mode of the previous creator when adding a new row, and if first row, use the last-used mode program-wide
This commit is contained in:
parent
cf37ce6e82
commit
016587d983
|
@ -280,7 +280,7 @@ var ZoteroItemPane = new function()
|
|||
else
|
||||
{
|
||||
// Add default row
|
||||
addCreatorRow('', '', false, false, true, true);
|
||||
addCreatorRow('', '', false, Zotero.Prefs.get('lastCreatorFieldMode'), true, true);
|
||||
}
|
||||
|
||||
var focusMode = 'info';
|
||||
|
@ -474,6 +474,7 @@ var ZoteroItemPane = new function()
|
|||
|
||||
var label = document.createElement("toolbarbutton");
|
||||
label.setAttribute("label",Zotero.getString('creatorTypes.'+Zotero.CreatorTypes.getName(typeID))+":");
|
||||
label.setAttribute("typeid", typeID);
|
||||
label.setAttribute("popup","creatorTypeMenu");
|
||||
label.setAttribute("fieldname",'creator-'+_creatorCount+'-typeID');
|
||||
label.className = 'clicky';
|
||||
|
@ -545,7 +546,7 @@ var ZoteroItemPane = new function()
|
|||
}
|
||||
else
|
||||
{
|
||||
_enablePlusButton(addButton, typeID);
|
||||
_enablePlusButton(addButton, typeID, singleField);
|
||||
}
|
||||
hbox.appendChild(addButton);
|
||||
|
||||
|
@ -648,6 +649,9 @@ var ZoteroItemPane = new function()
|
|||
comma.setAttribute('hidden', false);
|
||||
}
|
||||
|
||||
// Save the last-used field mode
|
||||
Zotero.Prefs.set('lastCreatorFieldMode', singleField);
|
||||
|
||||
if (!initial)
|
||||
{
|
||||
var [, index, field] = button.getAttribute('fieldname').split('-');
|
||||
|
@ -664,12 +668,12 @@ var ZoteroItemPane = new function()
|
|||
button.setAttribute('onclick', false);
|
||||
}
|
||||
|
||||
function _enablePlusButton(button, creatorTypeID)
|
||||
function _enablePlusButton(button, creatorTypeID, fieldMode)
|
||||
{
|
||||
button.setAttribute('disabled', false);
|
||||
button.setAttribute("class","clicky");
|
||||
button.setAttribute("onclick",
|
||||
"ZoteroItemPane.disableButton(this); ZoteroItemPane.addCreatorRow('',''," + (creatorTypeID ? creatorTypeID : 'false') + ",false,true);");
|
||||
"ZoteroItemPane.disableButton(this); ZoteroItemPane.addCreatorRow('', '', " + (creatorTypeID ? creatorTypeID : 'false') + ", " + fieldMode + ", true);");
|
||||
}
|
||||
|
||||
function createValueElement(valueText, fieldName, tabindex)
|
||||
|
@ -747,7 +751,9 @@ var ZoteroItemPane = new function()
|
|||
|
||||
// Enable the "+" button on the previous row
|
||||
var elems = _dynamicFields.getElementsByAttribute('value', '+');
|
||||
_enablePlusButton(elems[elems.length-1]);
|
||||
var button = elems[elems.length-1];
|
||||
var creatorFields = getCreatorFields(Zotero.getAncestorByTagName(button, 'row'));
|
||||
_enablePlusButton(button, creatorFields.typeID, creatorFields.singleField);
|
||||
|
||||
_creatorCount--;
|
||||
return;
|
||||
|
@ -1101,7 +1107,7 @@ var ZoteroItemPane = new function()
|
|||
}
|
||||
|
||||
function getCreatorFields(row){
|
||||
var type = row.getElementsByTagName('toolbarbutton')[0].getAttribute('label');
|
||||
var typeID = row.getElementsByTagName('toolbarbutton')[0].getAttribute('typeid');
|
||||
var label1 = row.getElementsByTagName('hbox')[0].firstChild.firstChild;
|
||||
var label2 = label1.parentNode.lastChild;
|
||||
|
||||
|
@ -1110,7 +1116,7 @@ var ZoteroItemPane = new function()
|
|||
: label1.value,
|
||||
firstName: label2.firstChild ? label2.firstChild.nodeValue
|
||||
: label2.value,
|
||||
typeID: Zotero.CreatorTypes.getID(type.substr(0, type.length-1).toLowerCase()),
|
||||
typeID: typeID,
|
||||
singleField: label1.getAttribute('singleField') == 'true'
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,6 +34,7 @@
|
|||
var typeID = event.explicitOriginalTarget.getAttribute('typeid');
|
||||
document.popupNode.setAttribute('label',
|
||||
Zotero.getString('creatorTypes.' + Zotero.CreatorTypes.getName(typeID)) + ':');
|
||||
document.popupNode.setAttribute('typeid', typeID);
|
||||
ZoteroItemPane.modifyCreator(document.popupNode.getAttribute('fieldname').split('-')[1],
|
||||
'typeID', typeID, otherFields)"/>
|
||||
</popupset>
|
||||
|
|
|
@ -10,3 +10,4 @@ pref("extensions.zotero.parseEndNoteMIMETypes",true);
|
|||
pref("extensions.zotero.automaticSnapshots",true);
|
||||
//pref("extensions.zotero.downloadAssociatedFiles",false);
|
||||
pref("extensions.zotero.reportTranslationFailure",true);
|
||||
pref("extensions.zotero.lastCreatorFieldMode",0);
|
||||
|
|
Loading…
Reference in New Issue
Block a user