Don't try to show secondary sort menu in feeds

(Feeds don't have a visible primary sort column.)
This commit is contained in:
Dan Stillman 2016-04-01 04:17:47 -04:00
parent 842dea973b
commit 129b8113b9

View File

@ -2332,69 +2332,73 @@ Zotero.ItemTreeView.prototype.onColumnPickerShowing = function (event) {
Zotero.debug(e, 1); Zotero.debug(e, 1);
} }
//
// Secondary Sort menu // Secondary Sort menu
try { //
let id = prefix + 'sort-menu'; if (!this.collectionTreeRow.isFeed()) {
let primaryField = this.getSortField(); try {
let sortFields = this.getSortFields(); let id = prefix + 'sort-menu';
let secondaryField = false; let primaryField = this.getSortField();
if (sortFields[1]) { let sortFields = this.getSortFields();
secondaryField = sortFields[1]; 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;
} }
let label = treecols.getElementsByAttribute('id',
'zotero-items-column-' + field)[0].getAttribute('label');
let sortMenuItem = doc.createElementNS(ns, 'menuitem'); // Get localized names from treecols, since the names are currently done via .dtd
sortMenuItem.setAttribute('fieldName', field); let treecols = menupopup.parentNode.parentNode;
sortMenuItem.setAttribute('label', label); let primaryFieldLabel = treecols.getElementsByAttribute('id',
sortMenuItem.setAttribute('type', 'checkbox'); 'zotero-items-column-' + primaryField)[0].getAttribute('label');
if (field == secondaryField) {
sortMenuItem.setAttribute('checked', 'true'); 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); sortMenu.appendChild(sortMenuPopup);
menupopup.insertBefore(sortMenu, lastChild); menupopup.insertBefore(sortMenu, lastChild);
} }
catch (e) { catch (e) {
Components.utils.reportError(e); Components.utils.reportError(e);
Zotero.debug(e, 1); Zotero.debug(e, 1);
}
} }
sep = doc.createElementNS(ns, 'menuseparator'); sep = doc.createElementNS(ns, 'menuseparator');