diff --git a/chrome/content/zotero/xpcom/itemTreeView.js b/chrome/content/zotero/xpcom/itemTreeView.js index 1230d5ad0..dd7c48025 100644 --- a/chrome/content/zotero/xpcom/itemTreeView.js +++ b/chrome/content/zotero/xpcom/itemTreeView.js @@ -934,6 +934,23 @@ Zotero.ItemTreeView.prototype.sort = function(itemID) } switch (columnField) { + case 'date': + fieldA = a.getField('date', true, true).substr(0, 10); + fieldB = b.getField('date', true, true).substr(0, 10); + + // Display rows with empty values last + cmp = (fieldA == '' && fieldB != '') ? -1 : + (fieldA != '' && fieldB == '') ? 1 : 0; + if (cmp) { + return cmp; + } + + cmp = (fieldA > fieldB) ? -1 : (fieldA < fieldB) ? 1 : 0; + if (cmp) { + return cmp; + } + break; + case 'type': var typeA = Zotero.getString('itemTypes.'+Zotero.ItemTypes.getName(a.ref.itemTypeID)); var typeB = Zotero.getString('itemTypes.'+Zotero.ItemTypes.getName(b.ref.itemTypeID)); @@ -988,7 +1005,6 @@ Zotero.ItemTreeView.prototype.sort = function(itemID) return cmp; } - //cmp = (fieldA > fieldB) ? -1 : (fieldA < fieldB) ? 1 : 0; cmp = collation.compareString(1, fieldB, fieldA); if (cmp) { return cmp; @@ -996,8 +1012,8 @@ Zotero.ItemTreeView.prototype.sort = function(itemID) } if (columnField != 'date') { - fieldA = a.getField('date', true, true); - fieldB = b.getField('date', true, true); + fieldA = a.getField('date', true, true).substr(0, 10); + fieldB = b.getField('date', true, true).substr(0, 10); // Display rows with empty values last cmp = (fieldA == '' && fieldB != '') ? -1 :