mirror of
https://github.com/lidarr/lidarr.git
synced 2025-07-14 00:53:57 -07:00
Added DateHeaderCell to prevent drunk sorting on null dates
This commit is contained in:
parent
4e7468e6fe
commit
bdab0d585f
2 changed files with 72 additions and 3 deletions
66
UI/Shared/Grid/DateHeaderCell.js
Normal file
66
UI/Shared/Grid/DateHeaderCell.js
Normal file
|
@ -0,0 +1,66 @@
|
|||
'use strict';
|
||||
|
||||
define(
|
||||
[
|
||||
'backgrid',
|
||||
'Shared/Grid/HeaderCell'
|
||||
], function (Backgrid, NzbDroneHeaderCell) {
|
||||
|
||||
Backgrid.DateHeaderCell = NzbDroneHeaderCell.extend({
|
||||
events: {
|
||||
'click': 'onClick'
|
||||
},
|
||||
|
||||
onClick: function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var self = this;
|
||||
var columnName = this.column.get('name');
|
||||
|
||||
if (this.column.get('sortable')) {
|
||||
if (this.direction() === 'ascending') {
|
||||
this.sort(columnName, 'descending', function (left, right) {
|
||||
var leftVal = left.get(columnName);
|
||||
var rightVal = right.get(columnName);
|
||||
|
||||
return self._comparator(leftVal, rightVal)
|
||||
});
|
||||
}
|
||||
else {
|
||||
this.sort(columnName, 'ascending', function (left, right) {
|
||||
var leftVal = left.get(columnName);
|
||||
var rightVal = right.get(columnName);
|
||||
|
||||
return self._comparator(rightVal, leftVal)
|
||||
});
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_comparator: function (leftVal, rightVal) {
|
||||
if (!leftVal && !rightVal) {
|
||||
return 0
|
||||
}
|
||||
|
||||
if (!leftVal) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (!rightVal) {
|
||||
return 1
|
||||
}
|
||||
|
||||
if (leftVal === rightVal) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (leftVal > rightVal) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
return Backgrid.DateHeaderCell;
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue