commit 129b8113b95f9ee429faba0f71653d322fed06cc
parent 842dea973bba069a223d21936e9dd3dd411f0bda
Author: Dan Stillman <dstillman@zotero.org>
Date: Fri, 1 Apr 2016 04:17:47 -0400
Don't try to show secondary sort menu in feeds
(Feeds don't have a visible primary sort column.)
Diffstat:
1 file changed, 62 insertions(+), 58 deletions(-)
diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js
@@ -2332,69 +2332,73 @@ Zotero.ItemTreeView.prototype.onColumnPickerShowing = function (event) {
Zotero.debug(e, 1);
}
+ //
// Secondary Sort menu
- try {
- let id = prefix + 'sort-menu';
- let primaryField = this.getSortField();
- let sortFields = this.getSortFields();
- let secondaryField = false;
- if (sortFields[1]) {
- secondaryField = sortFields[1];
- }
-
- // Get localized names from treecols, since the names are currently done via .dtd
- let treecols = menupopup.parentNode.parentNode;
- let primaryFieldLabel = treecols.getElementsByAttribute('id',
- 'zotero-items-column-' + primaryField)[0].getAttribute('label');
-
- let sortMenu = doc.createElementNS(ns, 'menu');
- sortMenu.setAttribute('label',
- Zotero.getString('pane.items.columnChooser.secondarySort', primaryFieldLabel));
- sortMenu.setAttribute('anonid', id);
-
- let sortMenuPopup = doc.createElementNS(ns, 'menupopup');
- sortMenuPopup.setAttribute('anonid', id + '-popup');
-
- // Generate menuitems
- let sortOptions = [
- 'title',
- 'firstCreator',
- 'itemType',
- 'date',
- 'year',
- 'publisher',
- 'publicationTitle',
- 'dateAdded',
- 'dateModified'
- ];
- for (let i=0; i<sortOptions.length; i++) {
- let field = sortOptions[i];
- // Hide current primary field, and don't show Year for Date, since it would be a no-op
- if (field == primaryField || (primaryField == 'date' && field == 'year')) {
- continue;
+ //
+ if (!this.collectionTreeRow.isFeed()) {
+ try {
+ let id = prefix + 'sort-menu';
+ let primaryField = this.getSortField();
+ let sortFields = this.getSortFields();
+ let secondaryField = false;
+ if (sortFields[1]) {
+ secondaryField = sortFields[1];
}
- let label = treecols.getElementsByAttribute('id',
- 'zotero-items-column-' + field)[0].getAttribute('label');
- let sortMenuItem = doc.createElementNS(ns, 'menuitem');
- sortMenuItem.setAttribute('fieldName', field);
- sortMenuItem.setAttribute('label', label);
- sortMenuItem.setAttribute('type', 'checkbox');
- if (field == secondaryField) {
- sortMenuItem.setAttribute('checked', 'true');
+ // Get localized names from treecols, since the names are currently done via .dtd
+ let treecols = menupopup.parentNode.parentNode;
+ let primaryFieldLabel = treecols.getElementsByAttribute('id',
+ 'zotero-items-column-' + primaryField)[0].getAttribute('label');
+
+ let sortMenu = doc.createElementNS(ns, 'menu');
+ sortMenu.setAttribute('label',
+ Zotero.getString('pane.items.columnChooser.secondarySort', primaryFieldLabel));
+ sortMenu.setAttribute('anonid', id);
+
+ let sortMenuPopup = doc.createElementNS(ns, 'menupopup');
+ sortMenuPopup.setAttribute('anonid', id + '-popup');
+
+ // Generate menuitems
+ let sortOptions = [
+ 'title',
+ 'firstCreator',
+ 'itemType',
+ 'date',
+ 'year',
+ 'publisher',
+ 'publicationTitle',
+ 'dateAdded',
+ 'dateModified'
+ ];
+ for (let i=0; i<sortOptions.length; i++) {
+ let field = sortOptions[i];
+ // Hide current primary field, and don't show Year for Date, since it would be a no-op
+ if (field == primaryField || (primaryField == 'date' && field == 'year')) {
+ continue;
+ }
+ let label = treecols.getElementsByAttribute('id',
+ 'zotero-items-column-' + field)[0].getAttribute('label');
+
+ let sortMenuItem = doc.createElementNS(ns, 'menuitem');
+ sortMenuItem.setAttribute('fieldName', field);
+ sortMenuItem.setAttribute('label', label);
+ sortMenuItem.setAttribute('type', 'checkbox');
+ if (field == secondaryField) {
+ sortMenuItem.setAttribute('checked', 'true');
+ }
+ sortMenuItem.setAttribute('oncommand',
+ 'var view = ZoteroPane.itemsView; '
+ + 'if (view.setSecondarySortField(this.getAttribute("fieldName"))) { view.sort(); }');
+ sortMenuPopup.appendChild(sortMenuItem);
}
- sortMenuItem.setAttribute('oncommand',
- 'var view = ZoteroPane.itemsView; '
- + 'if (view.setSecondarySortField(this.getAttribute("fieldName"))) { view.sort(); }');
- sortMenuPopup.appendChild(sortMenuItem);
+
+ sortMenu.appendChild(sortMenuPopup);
+ menupopup.insertBefore(sortMenu, lastChild);
+ }
+ catch (e) {
+ Components.utils.reportError(e);
+ Zotero.debug(e, 1);
}
-
- sortMenu.appendChild(sortMenuPopup);
- menupopup.insertBefore(sortMenu, lastChild);
- }
- catch (e) {
- Components.utils.reportError(e);
- Zotero.debug(e, 1);
}
sep = doc.createElementNS(ns, 'menuseparator');