Fixed: Initial sorting for Next Airing
This commit is contained in:
parent
442ab2b7c4
commit
4962db3b6a
|
@ -63,6 +63,21 @@ define(
|
|||
return '1';
|
||||
};
|
||||
|
||||
_.extend(this.prototype, {
|
||||
initialSort: function () {
|
||||
var key = this.state.sortKey;
|
||||
var order = this.state.order;
|
||||
|
||||
if (this.sorters && this.sorters[key] && this.mode === 'client') {
|
||||
var sortValue = this[key];
|
||||
|
||||
var comparator = this._makeComparator(key, order, sortValue);
|
||||
this.fullCollection.comparator = comparator;
|
||||
this.fullCollection.sort();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
return this;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -17,8 +17,7 @@ define(
|
|||
'Series/Index/FooterView',
|
||||
'Series/Index/FooterModel',
|
||||
'Shared/Toolbar/ToolbarLayout',
|
||||
'underscore',
|
||||
'moment'
|
||||
'underscore'
|
||||
], function (Marionette,
|
||||
Backgrid,
|
||||
PosterCollectionView,
|
||||
|
@ -35,8 +34,7 @@ define(
|
|||
FooterView,
|
||||
FooterModel,
|
||||
ToolbarLayout,
|
||||
_,
|
||||
Moment) {
|
||||
_) {
|
||||
return Marionette.Layout.extend({
|
||||
template: 'Series/Index/SeriesIndexLayoutTemplate',
|
||||
|
||||
|
@ -77,15 +75,7 @@ define(
|
|||
name : 'nextAiring',
|
||||
label : 'Next Airing',
|
||||
cell : RelativeDateCell,
|
||||
sortValue : function (model) {
|
||||
var nextAiring = model.get('nextAiring');
|
||||
|
||||
if (!nextAiring) {
|
||||
return Number.MAX_VALUE;
|
||||
}
|
||||
|
||||
return Moment(nextAiring).unix();
|
||||
}
|
||||
sortValue : SeriesCollection.sorters.nextAiring
|
||||
},
|
||||
{
|
||||
name : 'percentOfEpisodes',
|
||||
|
@ -162,15 +152,7 @@ define(
|
|||
{
|
||||
title : 'Next Airing',
|
||||
name : 'nextAiring',
|
||||
sortValue : function (model) {
|
||||
var nextAiring = model.get('nextAiring');
|
||||
|
||||
if (!nextAiring) {
|
||||
return Number.MAX_VALUE;
|
||||
}
|
||||
|
||||
return Moment(nextAiring).unix();
|
||||
}
|
||||
sortValue : SeriesCollection.sorters.nextAiring
|
||||
},
|
||||
{
|
||||
title: 'Episodes',
|
||||
|
@ -272,10 +254,6 @@ define(
|
|||
this.viewButtons
|
||||
];
|
||||
|
||||
if (this.showSortingButton) {
|
||||
rightButtons.splice(0, 0, this.sortingOptions);
|
||||
}
|
||||
|
||||
rightButtons.splice(0, 0, this.sortingOptions);
|
||||
|
||||
this.toolbar.show(new ToolbarLayout({
|
||||
|
|
|
@ -6,8 +6,9 @@ define(
|
|||
'backbone.pageable',
|
||||
'Series/SeriesModel',
|
||||
'api!series',
|
||||
'Mixins/AsPersistedStateCollection'
|
||||
], function (_, Backbone, PageableCollection, SeriesModel, SeriesData, AsPersistedStateCollection) {
|
||||
'Mixins/AsPersistedStateCollection',
|
||||
'moment'
|
||||
], function (_, Backbone, PageableCollection, SeriesModel, SeriesData, AsPersistedStateCollection, Moment) {
|
||||
var Collection = PageableCollection.extend({
|
||||
url : window.NzbDrone.ApiRoot + '/series',
|
||||
model: SeriesModel,
|
||||
|
@ -19,6 +20,18 @@ define(
|
|||
pageSize: 1000
|
||||
},
|
||||
|
||||
sorters: {
|
||||
nextAiring: function (model) {
|
||||
var nextAiring = model.get('nextAiring');
|
||||
|
||||
if (!nextAiring) {
|
||||
return Number.MAX_VALUE;
|
||||
}
|
||||
|
||||
return Moment(nextAiring).unix();
|
||||
}
|
||||
},
|
||||
|
||||
mode: 'client',
|
||||
|
||||
save: function () {
|
||||
|
@ -49,5 +62,7 @@ define(
|
|||
|
||||
var MixedIn = AsPersistedStateCollection.call(Collection);
|
||||
var collection = new MixedIn(SeriesData);
|
||||
collection.initialSort();
|
||||
|
||||
return collection;
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue