diff --git a/chrome/content/zotero/bindings/itembox.xml b/chrome/content/zotero/bindings/itembox.xml index 72e7c93f40..769d047a4e 100644 --- a/chrome/content/zotero/bindings/itembox.xml +++ b/chrome/content/zotero/bindings/itembox.xml @@ -525,16 +525,21 @@ } var moveSep = document.createElement("menuseparator"); + var moveToTop = document.createElement("menuitem"); var moveUp = document.createElement("menuitem"); var moveDown = document.createElement("menuitem"); moveSep.id = "zotero-creator-move-sep"; + moveToTop.id = "zotero-creator-move-to-top"; moveUp.id = "zotero-creator-move-up"; moveDown.id = "zotero-creator-move-down"; + moveToTop.className = "zotero-creator-move"; moveUp.className = "zotero-creator-move"; moveDown.className = "zotero-creator-move"; + moveToTop.setAttribute("label", Zotero.getString('pane.item.creator.moveToTop')); moveUp.setAttribute("label", Zotero.getString('pane.item.creator.moveUp')); moveDown.setAttribute("label", Zotero.getString('pane.item.creator.moveDown')); this._creatorTypeMenu.appendChild(moveSep); + this._creatorTypeMenu.appendChild(moveToTop); this._creatorTypeMenu.appendChild(moveUp); this._creatorTypeMenu.appendChild(moveDown); } @@ -2165,19 +2170,32 @@ --> - + index + 1; + var hideMoveToTop = !exists || index < 2; var hideMoveUp = !exists || index == 0; var hideMoveDown = !exists || !moreCreators; var hideMoveSep = hideMoveUp && hideMoveDown; document.getElementById('zotero-creator-move-sep').setAttribute('hidden', hideMoveSep); + document.getElementById('zotero-creator-move-to-top').setAttribute('hidden', hideMoveToTop); document.getElementById('zotero-creator-move-up').setAttribute('hidden', hideMoveUp); document.getElementById('zotero-creator-move-down').setAttribute('hidden', hideMoveDown);" oncommand="return async function () { @@ -2374,8 +2394,21 @@ var index = parseInt(typeBox.getAttribute('fieldname').split('-')[1]); if (event.explicitOriginalTarget.className == 'zotero-creator-move') { - var up = event.explicitOriginalTarget.id == 'zotero-creator-move-up'; - this.moveCreator(index, up); + let dir; + switch (event.explicitOriginalTarget.id) { + case 'zotero-creator-move-to-top': + dir = 'top'; + break; + + case 'zotero-creator-move-up': + dir = 'up'; + break; + + case 'zotero-creator-move-down': + dir = 'down'; + break; + } + this.moveCreator(index, dir); return; } diff --git a/chrome/locale/en-US/zotero/zotero.properties b/chrome/locale/en-US/zotero/zotero.properties index d4605eed95..cf0474ca45 100644 --- a/chrome/locale/en-US/zotero/zotero.properties +++ b/chrome/locale/en-US/zotero/zotero.properties @@ -353,6 +353,7 @@ pane.item.defaultLastName = last pane.item.defaultFullName = full name pane.item.switchFieldMode.one = Switch to single field pane.item.switchFieldMode.two = Switch to two fields +pane.item.creator.moveToTop = Move to Top pane.item.creator.moveUp = Move Up pane.item.creator.moveDown = Move Down pane.item.notes.untitled = Untitled Note