From 9dc8995ba8565e97740608c93625b26cb8b7934e Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Sun, 10 Jul 2022 23:42:52 -0400 Subject: [PATCH] Sort empty rows last for Date/Year columns when descending Date columns start in descending order, so put empty rows at end Also remove a seemingly unnecessary exception for Title when not the primary sort and just always sort it with empty rows first --- chrome/content/zotero/itemTree.jsx | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/chrome/content/zotero/itemTree.jsx b/chrome/content/zotero/itemTree.jsx index ee2000b105..66ccb9872e 100644 --- a/chrome/content/zotero/itemTree.jsx +++ b/chrome/content/zotero/itemTree.jsx @@ -1242,20 +1242,14 @@ var ItemTree = class ItemTree extends LibraryTree { ? `for ${itemIDs.length} ` + Zotero.Utilities.pluralize(itemIDs.length, ['item', 'items']) : "")); - // Set whether rows with empty values should be displayed last, - // which may be different for primary and secondary sorting. - var emptyFirst = {}; - switch (primaryField) { - case 'title': - emptyFirst.title = true; - break; - - // When sorting by title we want empty titles at the top, but if not - // sorting by title, empty titles should sort to the bottom so that new - // empty items don't get sorted to the middle of the items list. - default: - emptyFirst.title = false; - } + // Set whether rows with empty values should sort at the beginning + var emptyFirst = { + title: true, + + // Date columns start descending, so put empty rows at end + date: true, + year: true, + }; // Cache primary values while sorting, since base-field-mapped getField() // calls are relatively expensive