commit 7ee1b1e491608370cbd8f273e7cc8a080e5b2ca1
parent 64dd58694cbd58df8832bb36779a319a0d4f2e2d
Author: gracile-fr <gracile@gmx.com>
Date: Thu, 14 Jun 2012 17:19:30 +0200
Frank's patch https://github.com/zotero/zotero/issues/132
Menu item to swap creator first/last names (#132)
Diffstat:
2 files changed, 44 insertions(+), 1 deletion(-)
diff --git a/chrome/content/zotero/bindings/itembox.xml b/chrome/content/zotero/bindings/itembox.xml
@@ -712,6 +712,7 @@
// Name
var firstlast = document.createElement("hbox");
+ firstlast.setAttribute("context", "creator-transform-menu");
firstlast.className = 'creator-name-box';
firstlast.setAttribute("flex","1");
var tabindex = this._tabIndexMinCreators + (this._creatorCount * 2);
@@ -2166,6 +2167,24 @@
</method>
+ <method name="swapNames">
+ <body>
+ <![CDATA[
+ var myelem = document.popupNode.localName == 'hbox' ? document.popupNode : document.popupNode.parentNode;
+ var elem = myelem.parentNode.firstChild.lastChild;
+ var creatorIndex = parseInt(elem.getAttribute('fieldname').split('-')[1]);
+ var row = Zotero.getAncestorByTagName(elem, 'row');
+ var fields = this.getCreatorFields(row);
+ var lastName = fields.lastName;
+ var firstName = fields.firstName;
+ fields.lastName = firstName;
+ fields.firstName = lastName;
+ this.modifyCreator(creatorIndex, fields);
+ this.item.save();
+ ]]>
+ </body>
+ </method>
+
<method name="moveCreator">
<parameter name="index"/>
<parameter name="moveUp"/>
@@ -2433,7 +2452,29 @@
oncommand="document.getBindingParent(this).textTransform(document.popupNode, 'sentence')"/>
</menupopup>
</menu>
- </menupopup>
+ </menupopup>
+ <menupopup id="creator-transform-menu"
+ onpopupshowing="var myBox = document.popupNode.localName == 'hbox' ? document.popupNode : document.popupNode.parentNode;
+ var typeBox = myBox.parentNode.firstChild.lastChild;
+ var index = parseInt(typeBox.getAttribute('fieldname').split('-')[1]);
+ var item = document.getBindingParent(this).item;
+ var exists = item.hasCreatorAt(index);
+ if (exists) {
+ var fieldMode = item.getCreator(index).ref.fieldMode;
+ }
+ var hideTransforms = !exists || !!fieldMode;
+ if (hideTransforms) {
+ return false;
+ } else {
+ return true;
+ };">
+ <menu label="&zotero.item.creatorTransform;">
+ <menupopup position="after_start">
+ <menuitem label="&zotero.item.creatorTransform.nameSwap;" class="creator-transform-swap-names"
+ oncommand="document.getBindingParent(this).swapNames();"/>
+ </menupopup>
+ </menu>
+ </menupopup>
<zoteroguidancepanel id="zotero-author-guidance" about="authorMenu" position="after_end" x="-25"/>
</popupset>
<grid flex="1">
diff --git a/chrome/locale/en-US/zotero/zotero.dtd b/chrome/locale/en-US/zotero/zotero.dtd
@@ -104,6 +104,8 @@
<!ENTITY zotero.item.textTransform "Transform Text">
<!ENTITY zotero.item.textTransform.titlecase "Title Case">
<!ENTITY zotero.item.textTransform.sentencecase "Sentence case">
+<!ENTITY zotero.item.creatorTransform "Transform Name Form">
+<!ENTITY zotero.item.creatorTransform.nameSwap "Swap first/last">
<!ENTITY zotero.toolbar.newNote "New Note">
<!ENTITY zotero.toolbar.note.standalone "New Standalone Note">