Don't try to show secondary sort menu in feeds
(Feeds don't have a visible primary sort column.)
This commit is contained in:
parent
842dea973b
commit
129b8113b9
|
@ -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');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user