Merged r3888 from branch

This commit is contained in:
Dan Stillman 2008-12-29 09:35:11 +00:00
parent 8512ba8d39
commit f2cd272786
5 changed files with 51 additions and 49 deletions

View File

@ -18,14 +18,12 @@ row hbox hbox label
margin-bottom: 0; margin-bottom: 0;
} }
row > toolbarbutton
{
margin-right: 5px;
-moz-image-region: rect(2px, 14px, 18px, 0px);
}
row vbox[fieldname=abstractNote], row vbox[fieldname=abstractNote],
row vbox[fieldname=extra] row vbox[fieldname=extra]
{ {
margin-left: 1px; margin-left: 1px;
} }
.creator-type-label image {
margin-bottom: 0;
}

View File

@ -551,6 +551,9 @@
<parameter name="defaultRow"/> <parameter name="defaultRow"/>
<body> <body>
<![CDATA[ <![CDATA[
// getCreatorFields(), switchCreatorMode() and handleCreatorAutoCompleteSelect()
// may need need to be adjusted if this DOM structure changes
if (!creator) { if (!creator) {
creator = { creator = {
firstName: '', firstName: '',
@ -578,21 +581,26 @@
var typeID = creatorTypeID ? var typeID = creatorTypeID ?
creatorTypeID : this._creatorTypeMenu.childNodes[0].getAttribute('typeid'); creatorTypeID : this._creatorTypeMenu.childNodes[0].getAttribute('typeid');
var label = document.createElement("toolbarbutton"); var typeBox = document.createElement("hbox");
label.setAttribute("label", typeBox.setAttribute("typeid", typeID);
Zotero.getString('creatorTypes.' typeBox.setAttribute("popup", "creator-type-menu");
+ Zotero.CreatorTypes.getName(typeID)) + ":"); typeBox.setAttribute("fieldname", 'creator-' + this._creatorCount + '-typeID');
label.setAttribute("typeid", typeID); typeBox.className = 'creator-type-label zotero-clicky';
label.setAttribute("popup", "creator-type-menu");
label.setAttribute("fieldname", 'creator-' + this._creatorCount + '-typeID'); var img = document.createElement('image');
label.className = 'zotero-clicky'; img.setAttribute('src', 'chrome://zotero/skin/arrow-down.gif');
typeBox.appendChild(img);
var label = document.createElement("label");
label.setAttribute('value',
Zotero.getString('creatorTypes.'+Zotero.CreatorTypes.getName(typeID)) + ":")
typeBox.appendChild(label);
// getCreatorFields(), switchCreatorMode() and handleCreatorAutoCompleteSelect()
// may need need to be adjusted if this DOM structure changes
var hbox = document.createElement("hbox"); var hbox = document.createElement("hbox");
// Name // Name
var firstlast = document.createElement("hbox"); var firstlast = document.createElement("hbox");
firstlast.className = 'creator-name-box';
firstlast.setAttribute("flex","1"); firstlast.setAttribute("flex","1");
var tabindex = this._tabIndexMinCreators + (this._creatorCount * 2); var tabindex = this._tabIndexMinCreators + (this._creatorCount * 2);
var fieldName = 'creator-' + this._creatorCount + '-lastName'; var fieldName = 'creator-' + this._creatorCount + '-lastName';
@ -669,7 +677,7 @@
addButton.hidden = true; addButton.hidden = true;
} }
this.addDynamicRow(label, hbox, true); this.addDynamicRow(typeBox, hbox, true);
// Set single/double field toggle mode // Set single/double field toggle mode
if (creator.fieldMode) { if (creator.fieldMode) {
@ -756,7 +764,7 @@
button.setAttribute('image', 'chrome://zotero/skin/textfield-dual.png'); button.setAttribute('image', 'chrome://zotero/skin/textfield-dual.png');
button.setAttribute('tooltiptext', Zotero.getString('pane.item.switchFieldMode.two')); button.setAttribute('tooltiptext', Zotero.getString('pane.item.switchFieldMode.two'));
lastName.setAttribute('fieldMode', '1'); lastName.setAttribute('fieldMode', '1');
button.setAttribute('onclick', "document.getBindingParent(this).switchCreatorMode(this.parentNode.parentNode, 0)"); button.setAttribute('onclick', "document.getBindingParent(this).switchCreatorMode(Zotero.getAncestorByTagName(this, 'row'), 0)");
lastName.setAttribute('flex', '1'); lastName.setAttribute('flex', '1');
// Remove firstname field from tabindex // Remove firstname field from tabindex
@ -787,7 +795,7 @@
button.setAttribute('image', 'chrome://zotero/skin/textfield-single.png'); button.setAttribute('image', 'chrome://zotero/skin/textfield-single.png');
button.setAttribute('tooltiptext', Zotero.getString('pane.item.switchFieldMode.one')); button.setAttribute('tooltiptext', Zotero.getString('pane.item.switchFieldMode.one'));
lastName.setAttribute('fieldMode', '0'); lastName.setAttribute('fieldMode', '0');
button.setAttribute('onclick', "document.getBindingParent(this).switchCreatorMode(this.parentNode.parentNode, 1)"); button.setAttribute('onclick', "document.getBindingParent(this).switchCreatorMode(Zotero.getAncestorByTagName(this, 'row'), 1)");
lastName.setAttribute('flex', '0'); lastName.setAttribute('flex', '0');
// Add firstname field to tabindex // Add firstname field to tabindex
@ -1318,7 +1326,7 @@
label.value = creator[otherField]; label.value = creator[otherField];
} }
var row = textbox.parentNode.parentNode.parentNode; var row = Zotero.getAncestorByTagName(textbox, 'row');
var fields = this.getCreatorFields(row); var fields = this.getCreatorFields(row);
fields[creatorField] = creator[creatorField]; fields[creatorField] = creator[creatorField];
@ -1465,7 +1473,7 @@
// Creator fields // Creator fields
if (field == 'creator') { if (field == 'creator') {
var row = textbox.parentNode.parentNode.parentNode; var row = Zotero.getAncestorByTagName(textbox, 'row');
var otherFields = this.getCreatorFields(row); var otherFields = this.getCreatorFields(row);
otherFields[creatorField] = value; otherFields[creatorField] = value;
@ -1715,8 +1723,8 @@
<parameter name="row"/> <parameter name="row"/>
<body> <body>
<![CDATA[ <![CDATA[
var typeID = row.getElementsByTagName('toolbarbutton')[0].getAttribute('typeid'); var typeID = row.getElementsByClassName('creator-type-label')[0].getAttribute('typeid');
var label1 = row.getElementsByTagName('hbox')[0].firstChild.firstChild; var label1 = row.getElementsByClassName('creator-name-box')[0].firstChild;
var label2 = label1.parentNode.lastChild; var label2 = label1.parentNode.lastChild;
var fields = { var fields = {
@ -2035,13 +2043,20 @@
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<popupset> <popupset>
<popup id="creator-type-menu" position="after_start" <popup id="creator-type-menu" position="after_start"
oncommand="var fields = document.getBindingParent(this).getCreatorFields(document.popupNode.parentNode); oncommand="var typeBox = document.popupNode.localName == 'hbox'
? document.popupNode : document.popupNode.parentNode;
var row = typeBox.parentNode;
var typeID = event.explicitOriginalTarget.getAttribute('typeid'); var typeID = event.explicitOriginalTarget.getAttribute('typeid');
fields['creatorTypeID'] = typeID; var fields = document.getBindingParent(this).getCreatorFields(row);
document.popupNode.setAttribute('label', fields.creatorTypeID = typeID;
Zotero.getString('creatorTypes.' + Zotero.CreatorTypes.getName(typeID)) + ':'); typeBox.getElementsByTagName('label')[0].setAttribute(
document.popupNode.setAttribute('typeid', typeID); 'value',
var index = document.popupNode.getAttribute('fieldname').split('-')[1]; Zotero.getString(
'creatorTypes.' + Zotero.CreatorTypes.getName(typeID)
) + ':'
);
typeBox.setAttribute('typeid', typeID);
var index = typeBox.getAttribute('fieldname').split('-')[1];
document.getBindingParent(this).modifyCreator(index, fields)"/> document.getBindingParent(this).modifyCreator(index, fields)"/>
<popup id="field-menu"> <popup id="field-menu">
<menu label="&zotero.item.textTransform;"> <menu label="&zotero.item.textTransform;">

View File

@ -838,7 +838,7 @@ var Zotero = new function(){
function getAncestorByTagName(elem, tagName){ function getAncestorByTagName(elem, tagName){
while (elem.parentNode){ while (elem.parentNode){
elem = elem.parentNode; elem = elem.parentNode;
if (elem.tagName==tagName || elem.tagName=='xul:' + tagName){ if (elem.localName == tagName) {
return elem; return elem;
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

View File

@ -36,8 +36,7 @@ label[singleField=false]:after
*/ */
/* metadata field names */ /* metadata field names */
row > label:first-child, row > label:first-child, .creator-type-label
row > toolbarbutton .toolbarbutton-text /* creator type menu */
{ {
text-align: right; text-align: right;
font-weight: bold; font-weight: bold;
@ -53,25 +52,15 @@ row label
-moz-user-focus: ignore; -moz-user-focus: ignore;
} }
/* creator type menu */ /* creator type menu */
row > toolbarbutton .creator-type-label {
{ -moz-box-align: center;
margin: 0 2px 0 0; -moz-box-pack: end;
padding: 0 0 0 5px;
list-style-image: url("chrome://browser/skin/dropmark-nav.png");
-moz-image-region: rect(3px, 14px, 19px, 0px);
}
row > toolbarbutton .toolbarbutton-text
{
margin-top: -1px;
}
row > toolbarbutton .toolbarbutton-icon,
row > toolbarbutton .toolbarbutton-menu-dropmarker
{
margin: 0;
padding: 0;
} }
.creator-type-label image {
margin: 0 .5em 1px;
}
/* no space between last name and comma */ /* no space between last name and comma */
row hbox label:first-child row hbox label:first-child