www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

commit 5b367b6ac148afed897c5febb6e1886c214ef65a
parent c6afb86ba6b7de5698a4aa3f8af6e91bb46875a4
Author: Dan Stillman <dstillman@zotero.org>
Date:   Tue,  5 Mar 2013 15:35:15 -0500

Tweaks to name-swapping menu

- Don't show menu if item isn't editable
- Make DOM access more robust
- Fix whitespace

Diffstat:
Mchrome/content/zotero/bindings/itembox.xml | 71++++++++++++++++++++++++++++++++---------------------------------------
1 file changed, 32 insertions(+), 39 deletions(-)

diff --git a/chrome/content/zotero/bindings/itembox.xml b/chrome/content/zotero/bindings/itembox.xml @@ -712,7 +712,6 @@ // 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); @@ -742,6 +741,11 @@ if (creator.fieldMode) { firstlast.lastChild.setAttribute('hidden', true); } + + if (this.editable) { + firstlast.setAttribute('contextmenu', 'zotero-creator-transform-menu'); + } + this._tabIndexMaxCreators = Math.max(this._tabIndexMaxCreators, tabindex); hbox.appendChild(firstlast); @@ -2215,23 +2219,20 @@ </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="swapNames"> + <body><![CDATA[ + var row = Zotero.getAncestorByTagName(document.popupNode, 'row'); + var typeBox = row.getElementsByAttribute('popup', 'creator-type-menu')[0]; + var creatorIndex = parseInt(typeBox.getAttribute('fieldname').split('-')[1]); + 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"/> @@ -2501,27 +2502,19 @@ </menupopup> </menu> </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 id="zotero-creator-transform-menu" + onpopupshowing="var row = Zotero.getAncestorByTagName(document.popupNode, 'row'); + var typeBox = row.getElementsByAttribute('popup', 'creator-type-menu')[0]; + 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; + return !hideTransforms;"> + <menuitem label="&zotero.item.creatorTransform.nameSwap;" + oncommand="document.getBindingParent(this).swapNames();"/> </menupopup> <zoteroguidancepanel id="zotero-author-guidance" about="authorMenu" position="after_end" x="-25"/> </popupset>