Added Language, Call Number and Repository fields to middle pane
Row sorting now sorts by 'firstCreator' and 'date' after the main sort column
This commit is contained in:
parent
22dacc2dbc
commit
5ae02ce447
|
@ -221,6 +221,21 @@
|
|||
label="&zotero.items.publisher_column;"
|
||||
flex="1" persist="width ordinal hidden sortActive sortDirection"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol
|
||||
id="zotero-items-column-language" hidden="true"
|
||||
label="&zotero.items.language_column;"
|
||||
flex="1" persist="width ordinal hidden sortActive sortDirection"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol
|
||||
id="zotero-items-column-callNumber" hidden="true"
|
||||
label="&zotero.items.callNumber_column;"
|
||||
flex="1" persist="width ordinal hidden sortActive sortDirection"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol
|
||||
id="zotero-items-column-repository" hidden="true"
|
||||
label="&zotero.items.repository_column;"
|
||||
flex="1" persist="width ordinal hidden sortActive sortDirection"/>
|
||||
<splitter class="tree-splitter"/>
|
||||
<treecol
|
||||
id="zotero-items-column-rights" hidden="true"
|
||||
label="&zotero.items.rights_column;"
|
||||
|
|
|
@ -538,60 +538,112 @@ Zotero.ItemTreeView.prototype.sort = function()
|
|||
var order = column.element.getAttribute('sortDirection') == 'ascending';
|
||||
var columnField = column.id.substring(20);
|
||||
|
||||
if(columnField == 'type') {
|
||||
function columnSort(a,b)
|
||||
{
|
||||
var typeA = Zotero.getString('itemTypes.'+Zotero.ItemTypes.getName(a.getType()));
|
||||
var typeB = Zotero.getString('itemTypes.'+Zotero.ItemTypes.getName(b.getType()));
|
||||
|
||||
return (typeA > typeB) ? -1 : (typeA < typeB) ? 1 : 0;
|
||||
}
|
||||
// Year is really the date field truncated
|
||||
if (columnField == 'year') {
|
||||
columnField = 'date';
|
||||
}
|
||||
else if (columnField == 'numChildren') {
|
||||
function columnSort(a,b)
|
||||
{
|
||||
return b.numChildren() - a.numChildren();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Year is really the date field truncated
|
||||
if (columnField == 'year') {
|
||||
columnField = 'date';
|
||||
}
|
||||
|
||||
// Some fields (e.g. dates) need to be retrieved unformatted for sorting
|
||||
switch (columnField) {
|
||||
case 'date':
|
||||
var unformatted = true;
|
||||
break;
|
||||
|
||||
default:
|
||||
var unformatted = false;
|
||||
}
|
||||
|
||||
// Hash table of fields for which rows with empty values should be displayed last
|
||||
// - Not currently used
|
||||
var emptyFirst = {};
|
||||
|
||||
function columnSort(a,b) {
|
||||
var cmp;
|
||||
|
||||
// Some fields (e.g. dates) need to be retrieved unformatted for sorting
|
||||
switch (columnField) {
|
||||
case 'date':
|
||||
var unformatted = true;
|
||||
case 'type':
|
||||
var typeA = Zotero.getString('itemTypes.'+Zotero.ItemTypes.getName(a.getType()));
|
||||
var typeB = Zotero.getString('itemTypes.'+Zotero.ItemTypes.getName(b.getType()));
|
||||
|
||||
cmp = (typeA > typeB) ? -1 : (typeA < typeB) ? 1 : 0;
|
||||
if (cmp) {
|
||||
return cmp;
|
||||
}
|
||||
break;
|
||||
|
||||
case 'numChildren':
|
||||
cmp = b.numChildren() - a.numChildren();
|
||||
if (cmp) {
|
||||
return cmp;
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
var unformatted = false;
|
||||
var fieldA = a.getField(columnField, unformatted);
|
||||
var fieldB = b.getField(columnField, unformatted);
|
||||
|
||||
if (typeof fieldA == 'string') {
|
||||
fieldA = fieldA.toLowerCase();
|
||||
fieldB = fieldB.toLowerCase();
|
||||
}
|
||||
|
||||
// Display rows with empty values last
|
||||
if (!emptyFirst[columnField]) {
|
||||
cmp = (fieldA == '' && fieldB != '') ? -1 :
|
||||
(fieldA != '' && fieldB == '') ? 1 : 0;
|
||||
if (cmp) {
|
||||
return cmp;
|
||||
}
|
||||
}
|
||||
|
||||
cmp = (fieldA > fieldB) ? -1 : (fieldA < fieldB) ? 1 : 0;
|
||||
if (cmp) {
|
||||
return cmp;
|
||||
}
|
||||
}
|
||||
|
||||
function columnSort(a,b)
|
||||
{
|
||||
var fieldA = a.getField(columnField, unformatted);
|
||||
var fieldB = b.getField(columnField, unformatted);
|
||||
if (columnField != 'firstCreator') {
|
||||
fieldA = a.getField('firstCreator');
|
||||
fieldB = b.getField('firstCreator');
|
||||
|
||||
if(typeof fieldA == 'string')
|
||||
{
|
||||
fieldA = fieldA.toLowerCase();
|
||||
fieldB = fieldB.toLowerCase();
|
||||
// Display rows with empty values last
|
||||
cmp = (fieldA == '' && fieldB != '') ? -1 :
|
||||
(fieldA != '' && fieldB == '') ? 1 : 0;
|
||||
if (cmp) {
|
||||
return cmp;
|
||||
}
|
||||
|
||||
return (fieldA > fieldB) ? -1 : (fieldA < fieldB) ? 1 : 0;
|
||||
cmp = (fieldA > fieldB) ? -1 : (fieldA < fieldB) ? 1 : 0;
|
||||
if (cmp) {
|
||||
return cmp;
|
||||
}
|
||||
}
|
||||
|
||||
if (columnField != 'date') {
|
||||
fieldA = a.getField('date', true);
|
||||
fieldB = b.getField('date', true);
|
||||
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
fieldA = a.getField('dateModified');
|
||||
fieldB = b.getField('dateModified');
|
||||
return (fieldA > fieldB) ? -1 : (fieldA < fieldB) ? 1 : 0;
|
||||
}
|
||||
|
||||
function doSort(a,b)
|
||||
{
|
||||
var s = columnSort(a,b);
|
||||
if(s)
|
||||
return s;
|
||||
else
|
||||
return secondarySort(a,b);
|
||||
return columnSort(a,b);
|
||||
}
|
||||
|
||||
function oppositeSort(a,b)
|
||||
|
@ -599,11 +651,6 @@ Zotero.ItemTreeView.prototype.sort = function()
|
|||
return(doSort(a,b) * -1);
|
||||
}
|
||||
|
||||
function secondarySort(a,b)
|
||||
{
|
||||
return (a.getField('dateModified') > b.getField('dateModified')) ? -1 : (a.getField('dateModified') < b.getField('dateModified')) ? 1 : 0;
|
||||
}
|
||||
|
||||
var openRows = new Array();
|
||||
for(var i = 0; i < this._dataItems.length; i++)
|
||||
{
|
||||
|
|
|
@ -16,7 +16,10 @@
|
|||
<!ENTITY zotero.items.date_column "Date">
|
||||
<!ENTITY zotero.items.year_column "Year">
|
||||
<!ENTITY zotero.items.publisher_column "Publisher">
|
||||
<!ENTITY zotero.items.rights_column "Rights">
|
||||
<!ENTITY zotero.items.language_column "Language">
|
||||
<!ENTITY zotero.items.callNumber_column "Call Number">
|
||||
<!ENTITY zotero.items.repository_column "Repository">
|
||||
<!ENTITY zotero.items.rights_column "Rights">
|
||||
<!ENTITY zotero.items.dateAdded_column "Date Added">
|
||||
<!ENTITY zotero.items.dateModified_column "Date Modified">
|
||||
<!ENTITY zotero.items.numChildren_column "+">
|
||||
|
|
Loading…
Reference in New Issue
Block a user