From 18111dd15dea6e6fdbe5d1423d44506aa5121106 Mon Sep 17 00:00:00 2001 From: gracile-fr Date: Sat, 24 Mar 2012 19:39:14 +0100 Subject: [PATCH] Make additional fields available as columns with a submenu (fixes #84) --- .../content/zotero/bindings/columnpicker.xml | 152 ++++++++++++++++++ .../zotero/integration/addCitationDialog.xul | 89 +++++++++- chrome/content/zotero/selectItemsDialog.xul | 89 +++++++++- chrome/content/zotero/zoteroPane.xul | 89 +++++++++- chrome/locale/en-US/zotero/zotero.dtd | 18 ++- chrome/skin/default/zotero/zotero.css | 5 + 6 files changed, 435 insertions(+), 7 deletions(-) create mode 100644 chrome/content/zotero/bindings/columnpicker.xml diff --git a/chrome/content/zotero/bindings/columnpicker.xml b/chrome/content/zotero/bindings/columnpicker.xml new file mode 100644 index 0000000000..00b828127c --- /dev/null +++ b/chrome/content/zotero/bindings/columnpicker.xml @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + return Components.interfaces.nsIAccessibleProvider.XULButton; + + + + + + + + 4) { + aPopup.removeChild(aPopup.firstChild); + } + while (bPopup.childNodes.length > 0) { + bPopup.removeChild(bPopup.firstChild); + } + var refChild = aPopup.firstChild; + var refChild2 = bPopup.firstChild; + + var tree = this.parentNode.parentNode; + for (var currCol = tree.columns.getFirstColumn(); currCol; + currCol = currCol.getNext()) { + var currElement = currCol.element; + + // Construct an entry for each column in the row, unless + // it is not being shown. + + if ((!currElement.hasAttribute("ignoreincolumnpicker")) && + (!currElement.hasAttribute("submenu"))) { + var popupChild = document.createElement("menuitem"); + popupChild.setAttribute("type", "checkbox"); + var columnName = currElement.getAttribute("display") || + currElement.getAttribute("label"); + popupChild.setAttribute("label", columnName); + popupChild.setAttribute("colindex", currCol.index); + if (currElement.getAttribute("hidden") != "true") { + popupChild.setAttribute("checked", "true"); + } + if (currCol.primary) { + popupChild.setAttribute("disabled", "true"); + } + aPopup.insertBefore(popupChild, refChild); + } + + //Idem for the submenu + if ((!currElement.hasAttribute("ignoreincolumnpicker")) && + (currElement.hasAttribute("submenu"))) { + var popupChild = document.createElement("menuitem"); + popupChild.setAttribute("type", "checkbox"); + var columnName = currElement.getAttribute("display") || + currElement.getAttribute("label"); + popupChild.setAttribute("label", columnName); + popupChild.setAttribute("colindex", currCol.index); + if (currElement.getAttribute("hidden") != "true") { + popupChild.setAttribute("checked", "true"); + } + bPopup.insertBefore(popupChild, refChild2); + } + } + ]]> + + + + + + + + + + + \ No newline at end of file diff --git a/chrome/content/zotero/integration/addCitationDialog.xul b/chrome/content/zotero/integration/addCitationDialog.xul index 634d9dce06..6300f0faba 100644 --- a/chrome/content/zotero/integration/addCitationDialog.xul +++ b/chrome/content/zotero/integration/addCitationDialog.xul @@ -1,4 +1,4 @@ - +